Czasami zdarza się, że podczas pisania zdania jestem rozkojarzony i w końcu wpisuję te same słowa dwa razy dwa razy pod rząd.
Aby upewnić się, że nie przeszkadza to innym, Twoim zadaniem jest napisanie programu, który rozwiąże ten problem!
Zadanie
Biorąc pod uwagę ciąg wejściowy (jeśli ma to znaczenie dla twojego języka, możesz założyć, że wejście zawiera tylko ASCII, które nie zawiera kanałów.) str
, Które zawiera gdzieś pośrodku podciąg, który występuje dwa razy z rzędu, zwróć ciąg z jedną instancją tego podciąg usunięty.
W przypadku wielu możliwości zwróć najkrótszą możliwą odpowiedź (to znaczy wybierz najdłuższy podciąg powtarzający się i usuń tę).
W przypadku wielu, równie długich kolejnych powtarzających się podciągów, usuń pierwszy (to znaczy pierwszy napotkany podczas czytania ciągu od przodu do tyłu).
Możesz założyć, że dane wejściowe są poprawne (tzn. Zawsze zawierają kolejne powtarzające się podciągi), co może pomóc w obniżeniu ich golfa.
Przykłady
- Wejście:
hello hello world
-> Wyjście:hello world
. - Wejście:
foofoo
-> Wyjście:foo
. (Więc: Tak, ciąg może składać się tylko z powtarzającej się części dwa razy). - Dane wejściowe:
aaaaa
-> Dane wyjściowe:,aaa
ponieważ znajduje się tutaj najdłuższy powtarzający się podciągaa
. - Dane wejściowe:
Slartibartfast
-> To nie jest poprawne wejście, ponieważ nie zawiera kolejnych powtarzających się podciągów, więc nie musisz zajmować się tą sprawą. - Wejście:
the few the bar
-> Jest to kolejne nieprawidłowe wejście, ponieważ powtarzająca się część powinna natychmiast następować po części oryginalnej. W tym przypadku,the
ithe
są oddzielone przez coś innego w międzyczasie, więc to wejście jest nieprawidłowy. - Wejście:
ababcbc
-> Wyjście:abcbc
. Dwa możliwe najdłuższe kolejne powtarzające się podciągi toab
ibc
. Jakab
napotkano wcześniej w ciągu, ta odpowiedź jest poprawna. - Wejście:
Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo
. Wyjście:Buffalo buffalo buffalo buffalo Buffalo buffalo
. (W wykonanej zamianie rozróżniana jest wielkość liter). - Wejście:
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.
-> Wyjście:Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Usuwane są tylko najdłuższe kolejne powtarzające się podciągi.
Twój kod powinien być możliwie jak najkrótszy, ponieważ jest to gra w golfa , więc wygrywa najkrótsza odpowiedź w bajtach. Powodzenia!
p
whappens
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.
jako dane wejściowe, wynik powinien byćSometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Usuwane jest tylko najdłużej znalezione powielenie.