Введение
Эта задача состоит в том, чтобы найти наибольшее число, удалив 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 n x
по своему усмотрению: в качестве параметров в функции, необработанного ввода или любым другим допустимым способом. Только не забудьте сказать, как вы это сделали в своем ответе.
На выходе должен быть номер результата.
Это код-гольф , выигрывает самый короткий ответ в байтах.
Пример ввода и вывода
Опять же: не нужно быть слишком строгим :)
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
редактировать
Я изменил порядок ввода, чтобы отразить тот факт, что некоторым из вас может не понадобиться значение x для решения проблемы. х теперь является необязательным значением.
x
это какая-то бесполезная информация.
x
вход в качестве кода может сократить код. (Показательный пример: мой ответ Юлии.)