회문(palindrome) 판별하기

Seong Woong Kim·2022년 11월 28일
0

Python

목록 보기
6/18

회문(palindrome)은 순서를 거꾸로 읽어도 제대로 읽은 것과 같은 단어와 문장을 말합니다. 예를 들면 "level", "SOS", "rotator", "nurses run"과 같은 단어와 문장이 있지요.

그럼 문자열이 회문인지 판별하려면 어떻게 해야 할까요? 먼저 회문을 잘 살펴보면 첫 번째 글자와 마지막 글자가 같습니다. 그리고 안쪽으로 한 글자씩 좁혔을 때 글자가 서로 같으면 회문입니다.

즉, 가운데 문자 v를 기준으로 왼쪽과 오른쪽의 문자가 같습니다.

1. 반복문으로 문자 검사하기

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)                 # 회문 판별값 출력

2. 시퀀스 뒤집기로 문자 검사하기

word = input('단어를 입력하세요: ')
 
print(word == word[::-1])    # 원래 문자열과 반대로 뒤집은 문자열을 비교

3. 리스트와 reversed 사용하기

word = 'level'
list(word) == list(reversed(word))

4. 문자열의 join 메서드와 reversed 사용하기

word = 'level'
word == ''.join(reversed(word))
profile
성장과 연구하는 자세를 추구하는 AI 연구개발자

0개의 댓글