0
KMP는 검색 용이며 교체 용 것은 무엇입니까?문자열 교체를위한 가장 효율적인 알고리즘은 무엇입니까?
KMP는 검색 용이며 교체 용 것은 무엇입니까?문자열 교체를위한 가장 효율적인 알고리즘은 무엇입니까?
"바꾸기"는 일치하는 부분에 대한 대체 문자를 삽입하는 동안 (일치하지 않는) 오른쪽 부분 문자열을 올바르게 복사하는 것입니다 (알고리즘 문제와는 전혀 관계가없는 아주 간단한 작업입니다). 따라서 을 알고있는 경우 KMP가 검색 하위 작업을위한 최상의 알고리즘입니다 (일반적으로 제시 할 때 문제를 잘라내어 말린 것이 아니라). "바꾸기"에 특히 적합합니다 (특히 당신은 자바와 파이썬 같은 불변의 문자열을 가진 언어에서와 같이 새로운 문자열을 만들어 "바꾸기"를 바꿉니다. 그러나 그럼에도 불구하고 문자열이 가변적이라 할지라도 먼저 일치하는 것을 식별 한 다음 대체합니다.
그러나 "바꾸기"는 더 많은 메모리를 할당하지 않고 O (1)에서 수행 할 수 없습니다. – user198729
검색 할 수 없습니다. –
최악의 경우의 복잡성은 O (KMP) * O (대체)임을 잊지 마십시오. – user198729