À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:,aaacomo 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,theethesã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ãoabebc. 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!
pinhappens
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.