Расшифровка циклического сдвига строки

Swift Сложный strings

Задача «Расшифровка циклического сдвига строки»

Дана зашифрованная строка S, состоящая из строчных латинских букв. Она получена из исходной строки T путём циклического сдвига вправо на некоторое число позиций k (0 ≤ k < |T|) и последующей замены каждого символа на следующий по алфавиту (с циклическим переходом: 'z' → 'a'). Необходимо найти исходную строку T минимальной длины, такую, что после описанного преобразования получается S. Если таких T несколько, выбрать лексикографически минимальную. Длина S от 1 до 1000. Гарантируется, что решение существует.

Формат ввода

Одна строка S (строчные латинские буквы, длина от 1 до 1000).

Формат вывода

Одна строка — исходная строка T минимальной длины (и лексикографически минимальная среди таких).

Примеры

Пример 1

ВВОД
za
ВЫВОД
yz

Пример 2

ВВОД
aaa
ВЫВОД
z

Пример 3

ВВОД
5 3 0
ВЫВОД
None
main.swift