Вступ
Ця задача полягає у пошуку найбільшої кількості вилучення 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
так, як вам зручніше: як параметри у функції, необроблений вхід чи будь-який інший дійсний спосіб. Просто не забудьте сказати, як ви це зробили у своїй відповіді.
Вихід повинен бути результатом.
Це кодовий гольф , найкоротша відповідь у байтах виграє.
Приклад введення та виведення
Знову ж таки: не потрібно бути занадто суворим :)
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
Редагувати
Я змінив порядок введення, щоб відобразити той факт, що для вирішення проблеми деяким з вас може не знадобитися значення x . x тепер необов'язкове значення.
x
це є марною інформацією.
x
введення може скоротити код. (Справа в суті: моя відповідь Юлії.)