목록라빈-카프 (1)
레야몬
[C++] 1605번 반복 부분문자열 - 문자열, 해싱, 접미사 배열과 lcp 배열, 라빈-카프
3033번 가장 긴 문자열과 똑같은 문제라서 같이 풀이됩니다. 1. 문제 알파벳 소문자로 이루어진 길이 L인 문자열의 부분문자열 중, 적어도 한 번은 반복되는 문자열을 '반복 부분문자열'이라고 부르자. 문자열이 주어지면, 가장 긴 '반복 부분문자열'의 길이를 구하는 프로그램을 작성하시오. -1- 문자열의 길이 \(L(1 \leq L \leq 200,000)\)이 주어진다. -2- 문자열의 이루는 L개의 알파벳 소문자들이 띄어쓰기 없이 주어진다. -1- 가장 긴 '반복 부분문자열'의 길이를 출력한다. 만약 '반복 부분문자열'이 하나도 존재하지 않는다면 0을 출력한다. 2. 재정의 문자열에서 두 번 반복해서 나오는 가장 긴 문자열을 구하시오. 3. 해결 방법 Suffix Array에서 LCP를 구한다음 LC..
알고리즘/백준
2022. 11. 8. 01:41