A volte capita che durante la digitazione di una frase, mi distraggo e finisco per digitare le stesse coppie di parole due volte due parole due volte consecutive.
Per assicurarti che le altre persone non siano infastidite da questo, il tuo compito è scrivere un programma che risolva questo problema!
Compito
Data una stringa di input (se è importante per la tua lingua, puoi assumere un input solo ASCII che non contiene avanzamenti di riga) str
, che contiene da qualche parte nel mezzo una sottostringa che si verifica due volte in successione immediata, restituisci la stringa con un'istanza di questo sottostringa rimossa.
Nel caso di più possibilità, restituire la risposta più breve possibile (ovvero, selezionare la sottostringa ripetuta consecutiva più lunga e rimuoverla).
Nel caso di più sottostringhe consecutive consecutive ugualmente lunghe, rimuovere la prima (ovvero la prima rilevata durante la lettura della stringa da davanti a dietro).
Si può presumere che l'input sia corretto (cioè contiene sempre una sottostringa ripetuta consecutiva), il che potrebbe aiutare a ridimensionarlo.
Esempi
- Ingresso:
hello hello world
-> Output:hello world
. - Ingresso:
foofoo
-> Output:foo
. (Quindi: Sì, la stringa potrebbe consistere solo nella parte ripetuta due volte). - Input:
aaaaa
-> Output:,aaa
poiché la sottostringa consecutiva ripetuta più lunga è quiaa
. - Input:
Slartibartfast
-> Questo non è un input valido, poiché non contiene una sottostringa ripetuta consecutiva, quindi non è necessario gestire questo caso. - Input:
the few the bar
-> Questo è un altro input non valido, poiché la parte ripetuta dovrebbe seguire immediatamente la parte originale. In questo caso,the
ethe
sono separati da qualcos'altro nel mezzo, quindi questo input non è valido. - Ingresso:
ababcbc
-> Output:abcbc
. Le due sottostringhe ripetute consecutive più lunghe possibili sonoab
ebc
. Comeab
già riscontrato nella stringa, questa è la risposta corretta. - Ingresso:
Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo
. Uscita:Buffalo buffalo buffalo buffalo Buffalo buffalo
. (La sostituzione eseguita deve essere sensibile al maiuscolo / minuscolo). - Ingresso:
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.
-> Output:Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Viene rimossa solo la sottostringa ripetuta consecutiva più lunga.
Il codice dovrebbe essere il più breve possibile, poiché si tratta di code-golf , quindi vince la risposta più breve in byte. In bocca al lupo!
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.
come input, l'output dovrebbe essereSometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Viene rimossa solo la duplicazione trovata più a lungo.