때로는 문장을 입력하는 동안 산만 해져 같은 단어를 두 번 연속해서 두 번 입력하는 경우가 있습니다.
다른 사람들이 이것으로 방해받지 않도록 하려면 ,이 문제를 해결하는 프로그램을 작성해야합니다!
태스크
입력 문자열이 주어지면 (귀하의 언어에 중요하다면 줄 바꿈이 포함되지 않은 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.
. 가장 긴 중복 항목 만 제거됩니다.