https://www.acmicpc.net/problem/17609
import sys
T = int(input())
def per(S,left,right):
while left<right:
if S[left]==S[right]:
left+=1
right+=-1
else:
return False
return True
def secper(S,left,right):
if per(S,left,right):
return 0
while left<right:
if S[left]==S[right]:
left+=1
right+=-1
elif S[left]!=S[right]:
start_left = per(S,left+1,right)
start_right = per(S,left,right-1)
if start_right or start_left:
return 1
else:
return 2
for t in range(T):
S = sys.stdin.readline().rstrip()
left = 0
right = len(S)-1
print(secper(S,left,right))
회문의 특성상 양끝에서 똑같은 갯수의 문자를 지워도 회문이다.
하나씩 비교하다가 양쪽이 서로 문자가 다를때 한쪽씩 지워가면서 회문 체크를 해준다.