Manchmal ist es so, dass ich beim Schreiben eines Satzes abgelenkt bin und am Ende zweimal zweimal hintereinander die gleichen Wörter tippe.
Um sicherzustellen , dass andere Menschen davon nicht gestört werden, müssen Sie ein Programm schreiben, das dieses Problem behebt!
Aufgabe
Wenn Sie eine Eingabezeichenfolge angegeben haben (falls dies für Ihre Sprache von Bedeutung ist, können Sie eine reine ASCII-Eingabe ohne Zeilenvorschub annehmen) str
, die irgendwo in der Mitte eine Teilzeichenfolge enthält, die zweimal unmittelbar hintereinander auftritt, geben Sie die Zeichenfolge mit einer Instanz davon zurück Teilzeichenfolge entfernt.
Geben Sie bei mehreren Möglichkeiten die kürzestmögliche Antwort zurück (dh wählen Sie die längste aufeinanderfolgende wiederholte Teilzeichenfolge aus und entfernen Sie diese).
Entfernen Sie bei mehreren gleich langen, sich wiederholenden Teilzeichenfolgen die erste (d. H. Die erste, die beim Lesen der Zeichenfolge von vorne nach hinten auftritt).
Sie können davon ausgehen, dass die Eingabe korrekt ist (dh immer eine sich wiederholende Teilzeichenfolge enthält), was dazu beitragen kann, die Eingabe zu verbessern.
Beispiele
- Eingang:
hello hello world
-> Ausgang:hello world
. - Eingang:
foofoo
-> Ausgang:foo
. (Also: Ja, die Zeichenfolge besteht möglicherweise nur zweimal aus dem sich wiederholenden Teil.) - Eingabe:
aaaaa
-> Ausgabeaaa
:, da hier die am längsten wiederholte aufeinanderfolgende Teilzeichenfolge stehtaa
. - Eingabe:
Slartibartfast
-> Dies ist keine gültige Eingabe, da sie keine aufeinanderfolgende wiederholte Teilzeichenfolge enthält, sodass Sie diesen Fall nicht behandeln müssen. - Eingabe:
the few the bar
-> Dies ist eine weitere ungültige Eingabe, da der Wiederholungsteil unmittelbar auf den Originalteil folgen soll. In diesem Fallthe
undthe
durch etwas anderes dazwischen getrennt, ist diese Eingabe ungültig. - Eingang:
ababcbc
-> Ausgang:abcbc
. Die zwei möglicherweise am längsten hintereinander wiederholten Teilzeichenfolgen sindab
undbc
. Wie bereits erwähnt,ab
ist dies die richtige Antwort. - Input:
Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo
. Ausgang:Buffalo buffalo buffalo buffalo Buffalo buffalo
. (Beim durchgeführten Austausch muss die Groß- und Kleinschreibung beachtet werden.) - Eingang:
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.
-> Ausgang:Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Es wird nur die längste hintereinander wiederholte Teilzeichenfolge entfernt.
Ihr Code sollte so kurz wie möglich sein, da dies Code-Golf ist , damit die kürzeste Antwort in Bytes gewinnt. Viel Glück!
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.
als Eingabe nehmen, sollte die Ausgabe seinSometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Nur die am längsten gefundene Duplikation wird entfernt.