introduzione
Questa sfida consiste nel trovare il numero più grande rimuovendo y cifre dal numero originale n che ha x cifre.
Supponendo y=2 n=5263 x=4
, i possibili numeri che rimuovono y = 2 cifre sono:
[52, 56, 53, 26, 23, 63]
Quindi, il numero più grande è 63
quale deve essere l'output per questo esempio.
Un'altra logica sarebbe: per ogni y, cercare da sinistra a destra la cifra la cui cifra successiva a destra è maggiore, quindi rimuoverla, altrimenti quando non c'è corrispondenza, rimuovere le ultime cifre y .
Usando y=3 n=76751432 x=8
per spiegare:
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
Entrambi i metodi spiegati sopra funzionano .. ovviamente, puoi usare anche un altro metodo :)
Sfida
Il numero n non avrà più di 8 cifre e y sarà sempre maggiore di zero e inferiore di x .
Per evitare un formato di input rigoroso, è possibile utilizzare i valori: y n x
il modo in cui si preferisce: come parametri in funzione, input non elaborato o qualsiasi altro modo valido. Non dimenticare di dire come l'hai fatto nella tua risposta.
L'output dovrebbe essere il numero del risultato.
Questo è code-golf , vince la risposta più breve in byte.
Esempio di input e output
Ancora: non devi essere troppo severo :)
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
modificare
Ho modificato l'ordine di input per riflettere il fatto che alcuni di voi potrebbero non aver bisogno del valore x per risolvere il problema. x è ora un valore opzionale.
x
tratta di un'informazione inutile.
x
come input può abbreviare il codice. (Caso in questione: la mia risposta di Julia.)