안티팔린드롬
면접 대비시간 제한1초메모리 제한1024 MB
주어진 단어에서 길이가 2 이상인 팰린드롬을 포함하지 않는 연속 부분 문자열의 개수를 구합니다.
문제
팔린드롬은 앞에서 읽으나 뒤에서 읽으나 같은 단어이다. 예를 들어 kajak이나 anna가 그렇다. 이 문제에서 팔린드롬은 2글자 이상이어야 한다. 안티팔린드롬은 연속된 부분 문자열로 팔린드롬을 하나도 포함하지 않는 단어이다. 예를 들어 bajtek과 bajtocja는 안티팔린드롬이고, kajak과 olimpiada는 아니다.
바이트니카는 팔린드롬을 싫어한다. 온라인 게임의 닉네임으로 쓰려고 종이에 단어를 적었는데, 그 안에 팔린드롬이 들어 있을지도 모른다고 걱정한다. 팔린드롬이 있으면 기분이 상하기 때문이다. 그래서 그녀는 앞에서 일부(비어 있어도 됨)를 잘라내고, 뒤에서도 일부(비어 있어도 됨)를 잘라내기로 했다. 남은 부분은 비어 있으면 안 되며, 안티팔린드롬이어야 한다. 자르는 방법은 여러 가지가 있다. 정확히 몇 가지인가?
단어의 앞과 뒤를 잘라 남은 부분이 비어 있지 않은 안티팔린드롬이 되는 방법의 수를 세는 프로그램을 작성하시오.
입력
첫 번째 (유일한) 줄에 바이트니카의 단어인 비어 있지 않은 영어 소문자 문자열이 주어진다. 길이는 100,000을 넘지 않는다.
출력
첫 번째 (유일한) 줄에 음이 아닌 정수 하나를 출력한다. 이는 남은 부분이 비어 있지 않은 안티팔린드롬이 되도록 단어의 앞과 뒤를 자르는 서로 다른 방법의 수이다. 앞에서 자르는 글자 수나 뒤에서 자르는 글자 수 중 하나라도 다르면 서로 다른 방법으로 본다.