파이썬, 팰린드롬 문장이나 단어 확인하기

 

글. 오상문 sualchi@daum.net

 

앞에서 읽거나 뒤에서 읽을 때 똑같은 단어 또는 문장을 팰린드롬(palindrome)이라고 합니다.

noon은 팰린드롬 단어입니다. 문장인 경우에는 모두 알파벳 소문자로 바꾸고, 공백이나 마침표(".")를 제거한 후에 비교합니다. 같으면 True, 아니면 False를 반환합니다. "Never odd or even." 같은 문장은 팰린드롬입니다.

 

def solution(s):
  if s[-1] in '.!?':     # 마침표 제거
    s = s[:-1]
  s = s.lower()          # 모두 소문자로 변경
  s = ''.join(s.split()) # 공백 제거
  r = s[::-1]            # 뒤집은 문자열 만듦
  if s == r:               # 원래와 같은가?
    return True
  else:
    return False
#--------------------------------

 

print("love:", solution("love"))
print("noon:", solution("noon"))
print("Never odd or even.:", solution("Never odd or even."))

 

[실행 결과]

love: False
noon: True
Never odd or even.: True

 

[참고] 직접 글자 단위로 비교하는 방법도 가능합니다.

 

<이상>

반응형

+ Recent posts