이번 문제는 슬라이싱과 투포인터를 통해 해결하였다. 문자열을 입력받으면, 슬라이싱을 통해 거꾸로 돌린 값과 비교한다. 같다면 바로 0을 출력하고, 같지 않다면, r, l 포인터를 각각 0과 문자열의길이-1로 선언한 후, 문자열을 순회한다. 두 포인터가 가리키는 문자가 같다면 r을 1 증가, l을 1 감소시키고, 다르다면, r이 가리지는 문자를 뺀 문자열와 이 문자열을 거꾸로 돌린값을 비교하고, l이 가리키는 문자를 뺀 문자열과 이 문자열을 거꾸로 돌린값을 비교하여 이 중 하나라도 True라는 결과가 반환된다면 1을 출력하고, 그렇지 않다면 2를 출력하도록 하였다.
t = int(input())
for _ in range(t):
s = list(str(input()))
if s == s[::-1]:
print(0)
else:
r, l = 0, len(s)-1
while r <= l:
if s[r] == s[l]:
r += 1
l -= 1
else:
if s[:r]+s[r+1:] == (s[:r]+s[r+1:])[::-1] or s[:l]+s[l+1:] == (s[:l]+s[l+1:])[::-1]:
print(1)
break
else:
print(2)
break