介绍
挑战在于找到从具有x个数字的原始数字n中删除y个数字的最大数字。
假设y=2 n=5263 x=4
,可能的数字去除y = 2位数字是:
[52, 56, 53, 26, 23, 63]
因此,63
此示例的输出必须是最大数。
另一个逻辑是:对于每个y,从左到右搜索下一个更大的数字,然后将其删除,否则,当不匹配时,删除最后一个y数字。
使用y=3 n=76751432 x=8
说明:
y=3
76751432
-^------ remove 6 because right next 7 is greater
y=2
7751432
---^--- remove 1 because right next 4 is greater
y=1
775432
-----^ the search failed, then remove last y digits
result = 77543
上面介绍的两种方法都可以用..当然,您也可以使用另一种方法:)
挑战
数字n不能超过8位,并且y始终大于零且小于x。
为避免使用严格的输入格式,您可以使用值:y n x
您喜欢的方式:作为函数,原始输入或任何其他有效方式中的参数。只是不要忘记在回答中说出您是如何做到的。
输出应该是结果编号。
这是代码高尔夫球,最短的答案以字节为单位。
输入和输出示例
再次:您不必太严格:)
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
编辑
我更改了输入顺序以反映一个事实,即有些人可能不需要x值即可解决问题。x现在是一个可选值。
x
是一种无用的信息。
x
输入内容可以缩短代码。(恰当的例子:我的茱莉亚答案。)