문자열 · KMP String
KMP Visualizer
본문과 패턴을 직접 입력해 보세요. 입력이 바뀌면 단계가 다시 계산되고, 스크롤에 맞춰 일치하는 위치를 찾아 가는 과정이 보여요.
입력을 바꾸면 단계가 다시 계산돼요. 바꾼 뒤 처음으로 돌아가 스크롤해 보세요.
패턴 ABC
- 비교 중인 본문
- 일치
- 불일치
본문 패턴
A
B
C
A
B
C
D
A
B
A
B
C
D
A
B
C
D
A
B
D
E
A
B
C
LPS 표
A0
B0
C0
찾은 위치
아직 찾은 위치가 없어요
STEP 1 / 27scrollYProgress 0.00
이 단계에서는
KMP 탐색을 시작해요. 스크롤을 내려 보세요.
- 본문 위치
- 0
- 패턴 위치
- 0
- 찾은 횟수
- 0
아래로 스크롤하면 다음 단계로, 위로 스크롤하면 이전 단계로 돌아가요.
입력이 바뀌면 다시 계산
본문이나 패턴이 바뀔 때마다 getKMPSteps를 다시 실행해요. 스크롤 매핑은 그대로, 단계 배열만 새로 바뀌어요.
useMemo(() => getKMPSteps(text, pattern), [text, pattern])