Я пытаюсь удалить каждый символ, повторенный более чем в 2 раза из чрезвычайно длинной строки. Так, например, слово Terrrrrrific
становится Terrific
.Как удалить все повторяющиеся слова и буквы строки?
Теперь мой вопрос: как отфильтровать повторы, которые включают более одного символа, таким же образом, т.е. если у меня есть Words words words words words
Я хочу отфильтровать его до words words
, однако это может быть что-то менее разумное, например как abcdabcdabcdabcdabcd
, который должен стать abcdabcd
.
Я подозреваю, что должен использовать дерево суффикса, но я не уверен, как правильно идти по алгоритму.
Что вы ищете, также известные как «тандемные повторы» (из-за связанную задачу с участием Последовательности ДНК). Когда вы разрешаете более одного символа, вы должны тщательно определить, что вы подразумеваете под повторением: например. 'слова слова слова слова слова' также содержит 3 (перекрывающиеся) повторения строки' слова слова слова'. –