https://www.acmicpc.net/problem/15927
코드 :
import sys
def is_palindrome(word):
list_word = list(word)
for i in range(len(list_word) // 2):
if list_word[i] == list_word[len(list_word) - 1 - i]: pass
else: return False
return True
def all_same(word):
for i in range(1, len(word)):
if word[0] != word[i]: return False
return True
line = sys.stdin.readline().strip()
if is_palindrome(line): print(-1 if all_same(line) else len(line) - 1)
else: print(len(line))
|
cs |
풀이 :
입력이 회문인 경우와 회문이 아닌 경우가 있습니다.
1. 입력이 회문인 경우
앞이나 뒤의 글자를 하나 제거 하면 답입니다.
Ex. ABCBA -> ABCB2. 입력이 회문이지만 모든 글자가 같은 경우
모든 글자가 같으면 모든 부분문자열이 회문이 되어 답은 -1입니다.
3. 입력이 회문이 아닌 경우
입력의 길이가 답입니다
'백준(Python) > 골드' 카테고리의 다른 글
백준 17141: 연구소 2 [Python] (0) | 2022.06.21 |
---|---|
백준 13460: 구슬 탈출 2 [Python], 삼성 코딩 테스트 (0) | 2022.06.13 |
[Python] 백준 1520번 - 내리막 길, 다이나믹 프로그래밍-기초 (0) | 2022.05.26 |