728x90
https://www.acmicpc.net/problem/15927
15927번: 회문은 회문아니야!!
팰린드롬이란 앞으로 읽으나 뒤로 읽으나 같은 문자열을 말한다. 팰린드롬의 예시로 POP, ABBA 등이 있고, 팰린드롬이 아닌 것의 예시로 ABCA, PALINDROME 등이 있다. 같은 의미를 가지는 여러 단어들을
www.acmicpc.net
애드혹 유형이라고 한다
1. ZZZ 같이 같은 문자로 연속되는 문자의 경우 어떻게 문자열을 슬라이싱하더라도 펠린드롬 문자열이므로, -1을 return 한다.
1 의 경우에 해당되지 않는다면, 해당 문자열이 펠린드롬인지 아닌지를 판단해서 쉽게 답을 얻을 수 있다.
2. 펠린드롬 문자열인 경우 : (전체 문자열 길이-1)를 return 한다.
3. 펠린드롬 문자열이 아닌 경우 : 전체 문자열 길이 를 return 한다.
word = input()
# 펠린드롬인지 체크
def check_palindrome(word):
count = 0
n = len(word)
if n == 1:
return -1
# 전부 같은 문자열인지 확인하기
if n == word.count(word[0]):
return -1
# 팰린드롬인제 확인하기
left = 0
right = n-1
flag = True
while left < right:
if word[left] == word[right]:
left += 1
right -= 1
else:
flag = False
break
if flag:
return n-1
else:
return n
print(check_palindrome(word))
728x90
'Algorithm (PS)' 카테고리의 다른 글
[백준] 21278번 호석이 두 마리 치킨 Python (BFS풀이, 플로이드워셜) (0) | 2022.11.09 |
---|---|
[프로그래머스] 여행경로 Python (파이썬) (0) | 2022.11.09 |
[백준] 13022 : 늑대와 올바른 단어 Python/파이썬 풀이 (0) | 2022.11.04 |
[백준] 2470 두 용액 파이썬 (0) | 2022.10.30 |
[백준] 2615 오목 Python (0) | 2022.10.27 |