source и target из строчных латинских букв и число moves. Нужно превратить source в target не более чем за moves ходов.
Ходы нумеруются с 1. На ходу номер i можно сделать одно из двух:
- выбрать позицию в source, которую ещё ни разу не выбирали, и сдвинуть стоящую там букву вперёд по алфавиту ровно на i шагов (после z снова идёт a);
- пропустить ход.
Каждую позицию можно выбрать не больше одного раза. Верните True, если превратить source в target получится, иначе False. Строки могут быть разной длины — тогда это невозможно.source="cat", target="dog", moves=20 → True
Сдвиги: c→d на 1, a→o на 14, t→g на 13 (t, u, …, z, a, …, g). Все сдвиги разные, самый большой — 14 ≤ 20, значит, на ходах 1, 13 и 14 всё успеваем.
source="aaa", target="bbb", moves=27 → False
Каждую букву нужно сдвинуть на 1. Первой подходит ход 1, второй — ход 27 (27 сдвигов = полный круг + 1), а третьей уже нужен ход 53 > 27.
source="go", target="go", moves=0 → True
Строки уже совпадают, ходы не нужны.
source="cat", target="dog", moves=20
True
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 122 теста на сервере, включая скрытые.