-Code
for _ in range(int(input())):
s = input()
start, end = 0, len(s) - 1
if s == s[::-1]:
print(0)
else:
while start < end:
if s[start] == s[end]:
start += 1
end -= 1
else:
if s[start:end] == s[start:end][::-1] or s[start + 1:end + 1] == s[start + 1:end + 1][::-1]:
cnt = 1
break
else:
cnt = 2
break
print(cnt)
처음에는 2보다 더 큰 수가 있을 줄 알고 짜다가 코드가 이상해져서 틀리고 다시 보나 3가지 경우수 밖이 없었습니다. 투 포인터로 사용을 하다가 투 포인터로만 풀라지 않아서 찾아보니 슬라이딩 윈도를 사용하여 범위 맞추는 데 좀 걸렸지만 해결은 했습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 1718번 암호 (0) | 2022.05.13 |
---|---|
[백준/파이썬] 16916번 부분 문자열 (0) | 2022.05.13 |
[백준/파이썬] 6550번 부분 문자열 (0) | 2022.05.13 |
[백준/파이썬] 4659번 비밀번호 발음하기 (0) | 2022.05.13 |
[백준/파이썬] 20154번 이 구역의 승자는 누구야?! (0) | 2022.05.13 |