문자열 S의 부분 문자열 T가 다음 세 조건을 모두 만족하면 T를 카멜레온 부분 문자열이라고 한다.
- T는 S의 접두사이다.
- T는 S의 접미사이다.
- S 안에서 T가 위의 두 자리가 아닌 자리에도 등장한다. 즉 S의 첫 문자에서 시작하지도 않고 S의 마지막 문자에서 끝나지도 않는 T의 등장이 하나 이상 있다.
세 등장은 서로 겹쳐도 된다.
예를 들어 S= fixprefixsuffix이면 fix는 카멜레온 부분 문자열이다. fix는 S의 접두사이자 접미사이고, 7번째 문자에서 시작하는 등장도 있다.
문자열 S가 주어지면 가장 긴 카멜레온 부분 문자열을 구한다.