파이썬, 팰린드롬 문장이나 단어 확인하기
글. 오상문 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
[참고] 직접 글자 단위로 비교하는 방법도 가능합니다.
<이상>
반응형
'Python 기초' 카테고리의 다른 글
파이썬, 10진수, 16진수, 8진수, 2진수 출력 다양한 방법 (0) | 2019.10.26 |
---|---|
파이썬 3.6 표준 라이브러리 (0) | 2019.10.25 |
파이썬, 3의 배수 또는 5의 배수 리스트 만드는 다양한 방법 (0) | 2019.10.19 |
파이썬, 리스트의 가장 큰 수 개수가 작은 수 개수보다 몇 배 많은가 (0) | 2019.10.17 |
파이썬, 패킹(packing) 언패킹(unpacking) (0) | 2019.10.16 |