Seu amigo não é muito bom com computadores, então, como uma piada prática, alguém embaralhou as letras (az) em seu teclado. Quando ele se sentou e tentou digitar seu nome olhando para o teclado, percebeu que as letras estavam embaralhadas e pediu sua ajuda.
Você é esperto e sabe que, se ele digitar seu nome e digitar repetidamente o que aparece na tela, em vez de seu nome, ele poderá digitar seu nome eventualmente. Você também é gentil e reorganiza as teclas, mas quer saber quantas voltas seriam necessárias para ter sucesso.
Sua tarefa é escrever um programa ou função que, dada a ordem aleatória das letras e o nome do amigo, calcule o número de turnos.
Detalhes da entrada:
- Duas cordas são fornecidas como entrada em uma estrutura conveniente para o seu idioma.
- A primeira string é a lista das novas letras minúsculas em ordem alfabética das antigas. (O primeiro caractere é aquele que está na posição de
a, o último está na posição dez.) Alguma mudança sempre ocorrerá na string. - A segunda string é o nome. Ele pode conter qualquer caractere ascii imprimível, mas apenas os caracteres alfabéticos maiúsculos e minúsculos serão embaralhados, se houver. O nome em si pode não ser embaralhado.
Detalhes da saída:
- A saída é um único número inteiro o número de voltas minimamente necessário. Nova linha é opcional.
Exemplos:
Entrada:
'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'(posições d, e, f alteradas)
Saída:
3(Os nomes mostrados são: Mr. John Fod=> Mr. John Eof=> Mr. John Doe)
Entrada:
'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'(a cifra ROT13 )
Saída:
2(Qualquer nome de entrada que contenha letras será 2arredondado para produzir o nome original.)
Entrada:
'aebcdjfghiqklmnopzrstuvwxy' 'John Doe'
Resultado:
140
Este é o código-golfe, portanto a entrada mais curta vence.
EOFé totalmente incrível!
aebcdjfghiqklmnopzrstuvwxy(saída 1260 paraMr John Doe). Esse é o máximo possível - consiste em ciclos de ordem 4, 5, 7, 9 (e um inalteradoa), e todo nome que contém pelo menos uma letra de cada ciclo gera 1260. E eu acho que pegar o próprio alfabeto como entrada ou usar um nome não afetado também são casos importantes.