Wprowadzenie
Wyzwanie polega na znalezieniu największej liczby usuwającej y cyfr z pierwotnej liczby n, która ma x cyfr.
Zakładając y=2 n=5263 x=4
, że możliwe liczby usuwające y = 2 cyfry to:
[52, 56, 53, 26, 23, 63]
Zatem największa liczba 63
musi być wynikiem dla tego przykładu.
Inna logika wyglądałaby następująco: za każdym y szukaj od lewej do prawej cyfry, która z prawej jest następna, a następnie usuń ją, w przeciwnym razie, gdy nie będzie pasujących, usuń ostatnie cyfry y .
Za pomocą y=3 n=76751432 x=8
wyjaśnienia:
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
Obie metody wyjaśnione powyżej działają .. oczywiście możesz też użyć innej metody :)
Wyzwanie
Liczba n nie będzie miała więcej niż 8 cyfr, a y zawsze będzie większe niż zero i niższe niż x .
Aby uniknąć ścisłego formatu wejściowego, możesz użyć wartości: y n x
tak, jak wolisz: jako parametrów w funkcji, surowego wejścia lub w inny prawidłowy sposób. Po prostu nie zapomnij powiedzieć, jak to zrobiłeś w swojej odpowiedzi.
Dane wyjściowe powinny być liczbą wynikową.
To jest gra w golfa , wygrywa najkrótsza odpowiedź w bajtach.
Przykład wejścia i wyjścia
Znowu: nie musisz być zbyt surowy :)
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
Edytować
Zmieniłem kolejność wprowadzania, aby odzwierciedlić fakt, że niektórzy z was mogą nie potrzebować wartości x do rozwiązania problemu. x jest teraz wartością opcjonalną.
x
jest to rodzaj bezużytecznej informacji.
x
danych wejściowych może skrócić kod. (Przykład: moja odpowiedź Julii.)