본문 바로가기

알고리즘/백준

[Python] 백준 17609 : 회문

풀이 방법

  • 투포인터로 하나씩 비교한다.
  • 만약 좌우가 다른 문자가 나올 경우, left+1해서 검사하고 right-1해서 검사한다.
  • 두 검사 결과 중 하나라도 회문이라면 유사회문이다.

전체 코드

def check(left, right):
    while left < right:
        if s[left] == s[right]:
            left += 1
            right -= 1
        else:
            return False
    return True
def twopointer(left, right):
    while left < right:
        if s[left] == s[right]:
            left += 1
            right -= 1
        else:
            if check(left+1, right) or check(left, right-1):
                return 1
            return 2
    return 0
T = int(input())
for _ in range(T):
    s = input()
    print(twopointer(0, len(s)-1))
반응형