알고리즘/백준(BOJ)
[백준/알고리즘] #17609: 회문 [파이썬(python)/문자열]
숲호랑이
2021. 10. 18. 01:13
https://www.acmicpc.net/problem/17609
17609번: 회문
각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다.
www.acmicpc.net

#17609_회문
import sys
T=int(input())
def similar(word, start, end):
while start < end:
if word[start]==word[end]:
start+=1
end-=1
else:
return 2
return 1
def palindrome(word,start,end):
while start<end:
if word[start]==word[end]:
start+=1
end-=1
else:
sim1 = similar(word,start+1,end)
sim2 = similar(word,start,end-1)
if sim1==1 or sim2==1:
return 1
else:
return 2
return 0
for _ in range(T):
word = list(input())
res = palindrome(word, 0, len(word)-1)
print(res)
문자열에 두 포인터를 두어 앞이랑 뒤에서 쭉 탐색하면 된다.