문자열 s의 분할은 비어 있지 않은 부분 문자열 a1,a2,…,ad를 겹치지 않게 골라 s=a1+a2+⋯+ad가 되도록 만든 것이다. 각 부분 문자열을 조각이라고 부르고, 조각의 개수 d를 그 분할의 길이라고 한다.
분할은 조각마다 괄호를 씌워서 나타낸다. 예를 들어 문자열 decode는 (d)(ec)(ode), (d)(e)(c)(od)(e), (decod)(e), (decode), (de)(code)처럼 여러 가지로 분할된다.
조각 하나를 더 쪼갤 수 없는 단위로 볼 때 조각의 나열이 앞에서 읽으나 뒤에서 읽으나 같으면, 그 분할을 팰린드롬 분할이라고 한다. decode의 팰린드롬 분할은 (de)(co)(de)와 (decode) 두 가지뿐이다. 뒤쪽 예에서 보듯 어떤 단어에도 길이가 1인 팰린드롬 분할이 항상 존재한다.
단어 s가 주어지면 팰린드롬 분할의 길이가 최대 얼마인지 구하여라.