Иногда бывает так, что, набирая предложение, я отвлекаюсь и в итоге набираю одну и ту же пару слов, дважды пару слов дважды подряд.
Чтобы убедиться, что других людей это не беспокоит, ваша задача - написать программу, которая решит эту проблему!
задача
Если задана строка ввода (если это имеет значение для вашего языка, вы можете предполагать ввод только для ASCII, который не содержит перевода строки.) str
, Который содержит где-то посередине подстроку, которая встречается дважды подряд, вернуть строку с одним экземпляром этого подстрока удалена.
В случае множественных возможностей, верните самый короткий из возможных ответов (то есть выберите самую длинную последовательную повторяющуюся подстроку и удалите ее).
В случае нескольких одинаково длинных последовательных повторяющихся подстрок удалите первую (то есть первую, встречающуюся при чтении строки спереди назад).
Вы можете предположить, что ввод правильный (т. Е. Всегда содержит последовательную повторяющуюся подстроку), что может помочь в этом.
Примеры
- Вход:
hello hello world
-> Вывод:hello world
. - Вход:
foofoo
-> Вывод:foo
. (Итак: Да, строка может состоять только из повторяющейся части дважды). - Input:
aaaaa
-> Output: здесьaaa
находится самая длинная повторяющаяся последовательная подстрокаaa
. - Input:
Slartibartfast
-> Это недопустимый ввод, так как он не содержит последовательно повторяющейся подстроки, поэтому вам не нужно обрабатывать этот случай. - Ввод:
the few the bar
-> Это еще один неверный ввод, так как повторяющаяся часть должна следовать сразу же за исходной частью. В этом случаеthe
иthe
разделяются чем-то еще между ними, поэтому этот ввод недействителен. - Вход:
ababcbc
-> Вывод:abcbc
. Две возможные самые длинные последовательные повторяющиеся подстроки - этоab
иbc
. Какab
встречалось ранее в строке, это правильный ответ. - Вход:
Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo
. Выход:Buffalo buffalo buffalo buffalo Buffalo buffalo
. (Произведенная замена должна быть чувствительной к регистру). - Вход:
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.
-> Вывод:Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Только самая длинная последовательная повторяющаяся подстрока удаляется.
Ваш код должен быть как можно короче, поскольку это код-гольф , поэтому выигрывает самый короткий ответ в байтах. Удачи!
p
вhappens
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.
как ввод, вывод должен бытьSometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Только самое длинное найденное дублирование удаляется.