2009-12-15 2 views

답변

3

"바꾸기"는 일치하는 부분에 대한 대체 문자를 삽입하는 동안 (일치하지 않는) 오른쪽 부분 문자열을 올바르게 복사하는 것입니다 (알고리즘 문제와는 전혀 관계가없는 아주 간단한 작업입니다). 따라서 을 알고있는 경우 KMP가 검색 하위 작업을위한 최상의 알고리즘입니다 (일반적으로 제시 할 때 문제를 잘라내어 말린 것이 아니라). "바꾸기"에 특히 적합합니다 (특히 당신은 자바와 파이썬 같은 불변의 문자열을 가진 언어에서와 같이 새로운 문자열을 만들어 "바꾸기"를 바꿉니다. 그러나 그럼에도 불구하고 문자열이 가변적이라 할지라도 먼저 일치하는 것을 식별 한 다음 대체합니다.

+0

그러나 "바꾸기"는 더 많은 메모리를 할당하지 않고 O (1)에서 수행 할 수 없습니다. – user198729

+0

검색 할 수 없습니다. –

+0

최악의 경우의 복잡성은 O (KMP) * O (대체)임을 잊지 마십시오. – user198729

관련 문제