2016-06-14 1 views
2

Longest Palindromic Substring에 대한 Manacher 알고리즘을 구현하는 동안 마커 기호 (주어진 문자열의 문자 사이에있는 기호)를 사용해야합니까?Manacher의 알고리즘

예인 경우 모든 256 기호가 모두 소모되면 어떻게됩니까?

+1

왜 256 개의 기호가있는 것입니까? ASCII에 대해 생각하고 있습니까? 그렇다면 왜 UTF-8, UTF-32를 사용하지 않거나 임의의 길이의 숫자를 사용하는 대신 문자 세트를 사용해야하는 이유는 무엇입니까? – Aaron

답변

1

개인적으로 나는 그 자체의 알고리즘이 이미 충분히 어렵다고 생각합니다. 마커가 없어도 코드를 작성하면 코드가 이해할 수 없을 정도로 보입니다.

운 좋게도 요지가 없습니다. 이 알고리즘은 모든 유형의 배열에서 작동 할 수 있습니다. 문자열과 마찬가지로 문자 배열입니다. 문자열을 파싱하여 선택 인코딩에 적합한 유형의 배열로 시작하면됩니다. 데이터 유형의 크기와 관련된 복잡성은 없습니다.

0

Manacher 알고리즘은 palindrom의 속성을 사용하여 중심을 중심으로 대칭입니다. 홀 찾기 길이가 긴 문자열의 경우 중심 찾기가 비교적 간단합니다. 짝수 길이 문자열에 문자를 추가하면 문자열이 홀수 길이가됩니다. 따라서 문자열 길이가 일정하다면 문자를 추가해야합니다.