https://www.acmicpc.net/problem/17609
#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)
문자열에 두 포인터를 두어 앞이랑 뒤에서 쭉 탐색하면 된다.
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/알고리즘] #16953: A → B [파이썬(python)/그래프/DFS] (0) | 2021.10.20 |
---|---|
[백준/알고리즘] #1316: 그룹단어체커 [파이썬(python)/문자열] (0) | 2021.10.18 |
[백준/알고리즘] #2178: 미로탐색 [파이썬(python)/그래프/BFS] (0) | 2021.10.18 |
[백준/알고리즘] #1110: 더하기 사이클 [파이썬(python)/수학] (0) | 2021.10.18 |
[백준/알고리즘] #5639: 이진검색트리 [파이썬(python)/트리] (0) | 2021.10.18 |