이번 글에서 알아볼 내용은 정확히 말하면 기본문법이라고 보긴힘들다.(문제를 풀거니까)
하지만 이 글 때문에 카테고리를 하나 더 만들기 번거로워서 그냥 이 카테고리에 쓰겠다.
팰린드롬이란 앞뒤가 똑같은 단어나 문장으로, 뒤집어도 같은 말이 되는 다넝 또는 문장을 뜻한다.
문제
주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다.
ex1) 입력
"A man, a plan, a canal : Panama"
ex1) 출력
true
ex2) 입력
"race a car"
ex2) 출력
false
[풀이 1] - 리스트 변환
def isPalindrome(s: str) ->bool:
strs = []
for char in s:
if char.isalnum():
strs.append(char.lower())
while len(strs) > 1:
if strs.pop(0) != strs.pop():
return False
return True
print(isPalindrome(input()))
[풀이 2] - 데크 자료형
import collections
def isPalindrome(s: str) ->bool:
strs : Deque = collections.deque()
for char in s:
if char.isalnum():
strs.append(char.lower())
while len(strs) > 1:
if strs.popleft() != strs.pop():
return False
return True
print(isPalindrome(input()))
[풀이 3] - 슬라이싱
import re
def isPalindrome(s: str) ->bool:
s = s.lower()
s = re.sub('[^0-9a-z]', '', s)
return s == s[::-1]
print(isPalindrome(input()))
'Python' 카테고리의 다른 글
반복문 for문 주의할 점 (0) | 2023.09.16 |
---|---|
딕셔너리(dict) (0) | 2020.12.21 |
리스트(list) (0) | 2020.12.19 |
Python 시작하기 (0) | 2020.12.19 |