有时会发生这样的情况:在输入句子时,我会分心,最终两次连续输入相同的单词两次。
为了确保其他人不会对此感到烦恼,您的任务是编写一个解决此问题的程序!
任务
给定一个输入字符串(如果对您的语言而言很重要,则可以假定不包含换行符的仅ASCII输入。)str
,在其中间某处包含一个子字符串,该子字符串立即连续出现两次,并返回带有此字符串的一个实例的字符串子字符串已删除。
如果存在多种可能性,则返回可能的最短答案(即,选择最长的连续重复子串并删除该子串)。
如果有多个等长的连续重复子字符串,请删除第一个(即从前向后读取该字符串时遇到的第一个)。
您可以假设输入正确(即始终包含一个连续的重复子字符串),这可能有助于降低它的负担。
例子
- 输入:
hello hello world
->输出:hello world
。 - 输入:
foofoo
->输出:foo
。(因此:是的,字符串可能只包含两次重复部分)。 - 输入:
aaaaa
->输出:aaa
,因为最长的重复连续子字符串在此处aa
。 - 输入:
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.
。仅删除最长的连续重复子字符串。
您的代码应尽可能短,因为这是code-golf,所以以字节为单位的最短答案会获胜。祝好运!
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.
。仅删除找到的最长重复项。