코딩도장 강의를 바탕으로 정리한 내용입니다.
회문(palindrome) 은 순서를 거꾸로 해도 같은 단어 또는 문장을 말합니다. 예를 들면 토마토, level
같은 단어가 있습니다.
단어를 반 접어서 맞는지 확인하는 방식입니다.(처음과 끝에서 출발한 index를 비교)
word = input('단어를 입력하세요: ')
is_palindrome = True # 회문 판별값을 저장할 변수, 초깃값은 True
for i in range(len(word) // 2): # 0부터 문자열 길이의 절반만큼 반복
if word[i] != word[-1 - i]: # 왼쪽 문자와 오른쪽 문자를 비교하여 문자가 다르면
is_palindrome = False # 회문이 아님
break
print(is_palindrome) # 회문 판별값 출력
이 글에서 정리했던 extended slice를 사용하는 방법입니다.
word = input('단어를 입력하세요: ')
print(word == word[::-1]) # 원래 문자열과 반대로 뒤집은 문자열을 비교
string을 list()로 생성하면 문자 하나를 요소로 갖는 리스트가 생성됩니다.
>>> word = 'level'
>>> list(word) == list(reversed(word))
True
>>> list(word)
['l', 'e', 'v', 'e', 'l']
>>> list(reversed(word))
['l', 'e', 'v', 'e', 'l']
빈 문자열에 join으로 거꾸로된 문자를 만들어 비교하는 방법입니다.
>>> word = 'level'
>>> reversed(word)
<reversed object at 0x7f1843af00d0>
>>> word == ''.join(reversed(word))
True
>>> word
'level'
>>> ''.join(reversed(word))
'level'