Einführung
Diese Herausforderung besteht darin, die größte Zahl zu finden, wobei y Ziffern von der ursprünglichen Zahl n mit x Ziffern entfernt werden.
Angenommen y=2 n=5263 x=4
, die möglichen Zahlen, die y = 2 Ziffern entfernen, sind:
[52, 56, 53, 26, 23, 63]
Die größte Zahl 63
muss also für dieses Beispiel ausgegeben werden.
Eine andere Logik wäre: Suchen Sie für jedes y von links nach rechts nach der Ziffer, deren nächste Ziffer größer ist, und entfernen Sie sie, andernfalls, wenn keine Übereinstimmung vorliegt, die letzten y-Ziffern .
Mit y=3 n=76751432 x=8
erklären:
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
Beide oben erläuterten Methoden funktionieren. Natürlich können Sie auch eine andere Methode verwenden :)
Herausforderung
Die Zahl n darf nicht mehr als 8 Stellen haben, und y ist immer größer als Null und kleiner als x .
Um ein striktes Eingabeformat zu vermeiden, können Sie die Werte y n x
wie gewünscht als Parameter in Funktion, Roheingabe oder auf eine andere gültige Weise verwenden. Vergiss nur nicht zu sagen, wie du das in deiner Antwort getan hast.
Die Ausgabe sollte die Ergebnisnummer sein.
Dies ist Code-Golf , die kürzeste Antwort in Bytes gewinnt.
Beispiel für Ein- und Ausgabe
Nochmals: Sie müssen nicht zu streng sein :)
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
Bearbeiten
Ich habe die Eingabereihenfolge geändert, um der Tatsache Rechnung zu tragen, dass einige von Ihnen den x- Wert möglicherweise nicht benötigen , um das Problem zu lösen. x ist jetzt ein optionaler Wert.
x
eine Art nutzlose Information ist.
x
Eingabe den Code verkürzen kann. (Beispiel: meine Julia Antwort.)