Python/Data Struc & algo

[Python] 회문 판별(palindrome)

Pydole 2018. 4. 18. 20:38

 

파이썬 회문 판별(palindrome)

 

 

회문(palindrome) : 순서를 거꾸로 읽어도 제대로 읽은 것과 같은 단어와 문장

 

Ex) 'level', 'sos', 'nurses run' 같은 단어와 문장

 

 

'l  e  v  e  l' 을 예를들어 보면, 첫 문자와 마지막 문자가 동일하고, 안으로 들어갈 수록 서로 같으면 회문

 

def palindrome(word):
    for i in range(len(word) // 2):
        if word[i] != word[-1 -i]:
            return False

        return True

print(palindrome('level'))

True

 

 

회문은 거꾸로 읽어도 동일하므로, 입력받은 문자열을 리스트로 변환하여 reversed(역순)와 비교하는 방법도 가능하다

 

words = ['level','sos','mama' ]

for word in words:
    if list(word) == list(reversed(word)):     # 역순과 비교
        print(word, "회문 입니다")
    else:
        print(word, "회문이 아닙니다")
        
level 회문 입니다
sos 회문 입니다
mama 회문이 아닙니다