前書き
この課題は、除去最大数見つけることにあるY元番号から数字をn個有するX桁。
を仮定すると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
好きな方法:関数のパラメーターとして、生の入力、またはその他の有効な方法 答えであなたがそれをどのようにしたかを言うことを忘れないでください。
出力は結果番号でなければなりません。
これはcode-golfで、バイト単位の最短回答が勝ちです。
入力と出力の例
繰り返しになりますが、あまり厳密にする必要はありません
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
編集
問題を解決するためにx値を必要としない人もいるという事実を反映するために、入力順序を変更しました。xは現在、オプションの値です。
x
は一種の役に立たない情報だと考えています。
x
入力として持つとコードが短くなると思います。(事例:ジュリアの答え。)