Às vezes acontece que, ao digitar uma frase, fico distraído e acabo digitando o mesmo par de palavras duas vezes duas vezes seguidas.
Para garantir que outras pessoas não se incomodem com isso, sua tarefa é escrever um programa que resolva esse problema!
Tarefa
Dada uma sequência de entrada (se for importante para o seu idioma, você pode assumir uma entrada apenas ASCII que não contém alimentações de linha.) str
, Que contém em algum lugar no meio uma substring que ocorre duas vezes em sucessão imediata, retorne a sequência com uma instância desta substring removido.
No caso de múltiplas possibilidades, retorne a resposta mais curta possível (ou seja, escolha a substring de repetição consecutiva mais longa e remova essa).
No caso de várias substrings repetitivas consecutivas com o mesmo comprimento, remova a primeira (ou seja, a primeira encontrada ao ler a sequência da frente para trás).
Você pode presumir que a entrada está correta (ou seja, sempre contém uma subsequência consecutiva de substring), o que pode ajudar a diminuir o nível.
Exemplos
- Entrada:
hello hello world
-> Saída:hello world
. - Entrada:
foofoo
-> Saída:foo
. (Então: Sim, a sequência pode consistir apenas na parte repetida duas vezes). - Entrada:
aaaaa
-> Saída:,aaa
como a substring consecutiva de repetição mais longa está aquiaa
. - Entrada:
Slartibartfast
-> Esta não é uma entrada válida, pois não contém uma subsequência consecutiva consecutiva, portanto, você não precisa lidar com este caso. - Entrada:
the few the bar
-> Esta é outra entrada inválida, pois a parte repetida deve seguir imediatamente a parte original. Nesse caso,the
ethe
são separados por outra coisa intermediária, portanto, esta entrada é inválida. - Entrada:
ababcbc
-> Saída:abcbc
. As duas substrings de repetição consecutivas mais longas possíveis sãoab
ebc
. Comoab
é encontrado anteriormente na cadeia, esta é a resposta correta. - Entrada:
Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo
. Saída:Buffalo buffalo buffalo buffalo Buffalo buffalo
. (A substituição realizada deve fazer distinção entre maiúsculas e minúsculas). - Entrada:
Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice couple of words twice in succession.
-> Saída:Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Somente a substring de repetição consecutiva mais longa é removida.
Seu código deve ser o mais curto possível, já que esse é um código-golf , portanto a resposta mais curta em bytes vence. Boa sorte!
p
inhappens
Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice couple of words twice in succession.
como entrada, a saída deve serSometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Somente a duplicação encontrada mais longa é removida.