Ctrl K

Ближайшее большее из тех же цифр

Средняя
Дано положительное целое number. Переставьте его цифры так, чтобы получилось наименьшее число, которое строго больше number. Каждая цифра используется ровно столько раз, сколько встречается в number. Если такого числа нет или оно больше 2³¹ − 1 (не помещается в 32-битное знаковое целое), верните -1.
Пример 1
number=1432 → 2134

Хвост 432 уже максимален. Единицу меняем на наименьшую большую цифру хвоста — 2, остаток 1, 3, 4 ставим по возрастанию: 2134.

Пример 2
number=5510 → -1

Цифры уже стоят по убыванию — больше из них не собрать, ответ -1.

Пример 3
number=1999999999 → -1

Следующее число из тех же цифр — 9199999999, оно не помещается в 32-битное целое, поэтому -1.

Ограничения
  • 1 ≤ number ≤ 2³¹ − 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСловесная дуэль СложнаяСамый длинный зеркальный кусок СредняяЧисло римскими цифрами СредняяУмножение длинных чисел в строках СредняяСлова в обратном порядке Средняя
загружаем Python…
Вход
number=1432
Ожидается
2134

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 53 теста на сервере, включая скрытые.