길이가 같은 두 단어 s와 t가 있고, 그 길이를 n이라 하자. 1≤i≤j≤n을 만족하는 모든 위치 쌍 i,j에 대하여, "s에서 i번째부터 j번째까지의 부분 문자열이 회문"인 것과 "t에서 같은 구간의 부분 문자열이 회문"인 것이 항상 함께 성립하거나 함께 성립하지 않으면, 두 단어 s와 t를 회문 동치라고 부른다.
다시 말해, s와 t는 위치를 기준으로 정확히 같은 회문 부분 문자열의 집합을 가진다.
단어 하나가 주어질 때, 그 단어와 회문 동치이면서 길이가 같고 소문자 알파벳 26자로 이루어진 단어의 개수를 구하여라. 그 개수가 매우 클 수 있으므로 109+7로 나눈 나머지를 출력한다.
소문자 알파벳으로 이루어진, 비어 있지 않은 단어가 한 줄에 주어진다. 단어의 길이는 106을 넘지 않는다.
주어진 단어와 회문 동치인 단어의 개수를 109+7로 나눈 나머지를 정수 하나로 출력한다.
단어 abba를 생각해 보자. 어떤 단어가 abba와 회문 동치가 되는 경우는 서로 다른 두 문자 x, y에 대해 xyyx 꼴일 때뿐이다. x를 고르는 방법이 26가지, 남은 y를 고르는 방법이 25가지이므로 이러한 단어는 모두 26×25=650개다.