어떤 문자열을 뒤집었을 때 원래 문자열과 같으면 그 문자열을 팰린드롬이라고 한다. 예를 들어 "a", "aa", "appa", "queryreuq"는 모두 팰린드롬이다.
비어 있는 문자열 S에서 시작해 두 가지 연산을 처리한다.
- S의 맨 뒤에 알파벳 소문자를 하나 붙인다.
- S의 맨 뒤 문자를 하나 지운다.
연산을 하나 처리할 때마다 그 시점의 S에 들어 있는 팰린드롬 부분문자열의 개수를 세어야 한다. 1≤i≤j≤∣S∣인 정수 i, j에 대해 S[i,j]를 S의 i번째 문자부터 j번째 문자까지로 이루어진 부분문자열이라고 하자. S[i,j]가 팰린드롬인 정수쌍 (i,j)의 개수를 세어 출력한다.