백준(Python)/골드

백준 15927: 회문은 회문아니야!! [파이썬]

치킨먹고싶어요 2022. 6. 3. 14:36

https://www.acmicpc.net/problem/15927

 

15927번: 회문은 회문아니야!!

팰린드롬이란 앞으로 읽으나 뒤로 읽으나 같은 문자열을 말한다. 팰린드롬의 예시로 POP, ABBA 등이 있고, 팰린드롬이 아닌 것의 예시로 ABCA, PALINDROME 등이 있다. 같은 의미를 가지는 여러 단어들을

www.acmicpc.net

코드 : 

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
        elsereturn False
    return True
def all_same(word):
    for i in range(1len(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)
elseprint(len(line))
 
cs

풀이 :

입력이 회문인 경우와 회문이 아닌 경우가 있습니다.


1. 입력이 회문인 경우

앞이나 뒤의 글자를 하나 제거 하면 답입니다.

Ex. ABCBA -> ABCB 

2. 입력이 회문이지만 모든 글자가 같은 경우

모든 글자가 같으면 모든 부분문자열이 회문이 되어 답은 -1입니다.


3. 입력이 회문이 아닌 경우

입력의 길이가 답입니다