[JAVA] - 문자열 패턴 매칭
🔷 Java/Basic
2022. 2. 25. 23:02
문자열 패턴 매칭 라빈-카프 알고리즘 문자열 검색을 위해 해시 값 함수와 슬라이딩 윈도우 기법을 사용 문자열을 mod 연산을 통해 해쉬값 취환 문자를 일일이 비교하지만 해시를 사용하므로 최악은 O(MN) 이지만 선형적일수록 효율적이다. (단, 해쉬 충돌 여지가 있다.) 보이어 무어 알고리즘 문자열을 오른쪽에서 왼쪽으로 비교 끝 문자가 비교 문자랑 다르다면 끝 문자가 패턴에 포함되어 있는지 확인하고, 있다면 그 길이만큼 이동, 없다면 패턴의 길이 만큼 이동 최악은 O(MN) 이지만 최선은 O(N/M)이며 평균적으로 높은 속도를 가지는 알고리즘 skip 배열 skip 횟수를 저장한 배열 - 뒤로 갈 수 있는 거리 만큼 배열에 저장 패턴이 "rithm" 이라면 패턴의 길이는 5이다. a~z 중 r =4, i=..
반응형