Decodificação de deslocamento cíclico de string

Swift Hard strings

Tarefa «Decodificação de deslocamento cíclico de string»

Dada uma string criptografada S, composta por letras minúsculas do alfabeto latino. Ela foi obtida a partir da string original T por meio de um deslocamento cíclico à direita por um certo número de posições k (0 ≤ k < |T|) e, em seguida, substituindo cada caractere pelo próximo no alfabeto (com transição cíclica: 'z' → 'a'). É necessário encontrar a string original T de comprimento mínimo, tal que, após a transformação descrita, obtém-se S. Se houver múltiplas strings T, escolher a lexicograficamente mínima. O comprimento de S é de 1 a 1000. É garantido que existe uma solução.

Formato de Entrada

Uma única string S (letras minúsculas do alfabeto latino, comprimento de 1 a 1000).

Formato de Saída

Uma única string — a string original T de comprimento mínimo (e lexicograficamente mínima entre tais).

Exemplos

Exemplo 1

ENTRADA
za
SAÍDA
yz

Exemplo 2

ENTRADA
aaa
SAÍDA
z

Exemplo 3

ENTRADA
5 3 0
SAÍDA
None
main.swift