문자열 검색 알고리즘은 더 큰 텍스트(문자열) 내에서 특정 패턴(하위 문자열)의 발생을 찾는 데 사용됩니다. 이 알고리즘은 텍스트 처리, 검색 및 조작 작업에서 중요한 역할을 합니다.
작동 방식
- 검색할 텍스트(문자열) 및 패턴(하위 문자열)으로 시작합니다.
- 한 번에 한 문자씩 텍스트를 반복합니다.
- 텍스트의 각 문자를 패턴의 첫 번째 문자와 비교합니다.
- 일치하는 경우 후속 문자도 패턴과 일치하는지 확인하십시오.
- 패턴이 완전히 일치하면 일치의 시작 위치를 기록합니다.
- 텍스트에서 패턴을 계속 검색합니다.
예
"ababcababcabcabc" 텍스트와 "abc" 패턴을 고려하십시오.
- 위치 0에서 시작합니다. "a"를 패턴의 첫 번째 문자 "a"와 비교합니다.
- 일치 항목이 발견되면 "b"와 "b", "c"와 "a"의 다음 문자로 이동합니다.
- "b"는 "a", "a"는 "b", "b"는 "c"와 계속 일치시킵니다.
- 위치 2에서 경기가 실패했습니다.
- 위치 3에서 다시 시작합니다. "a"를 패턴의 첫 번째 문자 "a"와 비교합니다.
- 성공적인 일치: "a"와 "a", "b"와 "b", "c"와 "c".
- 기록 위치 3.
패턴 "abc"는 위치 0, 6 및 9에서 찾을 수 있습니다.
C++의 예제 코드
이 예에서 stringSearch
함수는 텍스트 "ababcababcabcabc" 내에서 패턴 "abc" 발생을 찾는 데 사용됩니다. 결과는 경기의 시작 위치를 포함하는 벡터입니다.