Desafio:
Dada uma sequência contendo apenas letras maiúsculas e / ou minúsculas (o que você preferir), coloque tapehorizontalmente para corrigi-la. Fazemos isso verificando a diferença de duas letras adjacentes no alfabeto (ignorando o contorno e apenas avançando) e preenchendo o espaço com o máximo TAPE/ tapenecessário.
Exemplo:
Entrada: abcmnnnopstzra
Saída:abcTAPETAPETmnnnopTAstTAPETzra
Por quê?
- Entre
cemdeve serdefghijkl(comprimento 9), então preenchemos isso comTAPETAPET; - Entre
pesdeve serqr(comprimento 2), então preenchemos isso comTA; - Entre
tezdeve seruvwxy(comprimento 5), por isso preenchemos issoTAPET.
Regras do desafio:
- A diferença se aplica apenas a frente, portanto, não há fita entre elas
zra. - É possível ter várias das mesmas letras adjacentes como
nnn. - Você tem permissão para receber a entrada em qualquer formato razoável. Pode ser uma única string, string-array / lista, caractere-array / lista, etc. A saída tem a mesma flexibilidade.
- Você tem permissão para usar letras minúsculas e / ou maiúsculas da maneira que desejar. Isso se aplica à entrada, saída e
TAPE. - É possível que não
TAPEseja necessário; nesse caso, a entrada permanece inalterada.
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link para um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Casos de teste:
Input: "abcmnnnopstzra"
Output: "abcTAPETAPETmnnnopTAstTAPETzra"
Input: "aza"
Output: "aTAPETAPETAPETAPETAPETAPEza"
Input: "ghijk"
Output: "ghijk"
Input: "aabbddeeffiiacek"
Output: "aabbTddeeffTAiiaTcTeTAPETk"
Input: "zyxxccba"
Output: "zyxxccba"
Input: "abccxxyz"
Output: "abccTAPETAPETAPETAPETAPExxyz"
Input: "abtapegh"
Output: "abTAPETAPETAPETAPETtaTAPETAPETAPETApeTgh"
Input: "tape"
Output: "taTAPETAPETAPETApe"
ab[TAPETAPETAPETAPET]TA[TAPETAPETAPETA]PE[T]gh(acrescentou o []para torná-lo mais legível).
