[리트코드 125] Valid Palindrome
주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다.
팰린드롬이란 앞으로 읽은 것이랑, 뒤로 읽은 것이 같은 문자열을 말한다. 한글로 예를들면 '다시 합창 합시다' 이런 것들이다.
주어진 조건에서 대소문자를 구분하지 않으며 영문자와 숫자만을 대상으로 하므로, 먼저 정규식을 통해 문자열을 걸러냈다.
import re
class Solution:
def isPalindrome(self, s: str) -> bool:
forward = re.sub('[^a-zA-Z0-9]', '', s).lower()
re 라이브러리를 통해 알파벳과 숫자만을 걸러낸 후, 알파벳은 lower()함수를 통하여 소문자로 통일하였다.
그 다음, 대상 문자열을 뒤집은 backward 문자열을 생성하여 앞에서 부터 비교하며 틀린 경우가 있을 경우 False 값을, 맞을 경우 True 값을 출력하도록 하였다.
def isPalindrome(self, s: str) -> bool:
forward = re.sub('[^a-zA-Z0-9]', '', s).lower()
backward = forward[::-1]
isPal = True
for i in range(len(forward)):
if forward[i] != backward[i]:
isPal = False
if not isPal:
break
return isPal
'코딩테스트 > 알고리즘' 카테고리의 다른 글
[Q6] 가장 긴 팰린드롬 부분 문자열 (0) | 2022.12.01 |
---|---|
[Q4] 가장 흔한 단어 (0) | 2022.12.01 |
[Q3] 로그파일 재정렬 (0) | 2022.12.01 |
[Q2] 문자열 뒤집기 (0) | 2022.11.30 |
코딩테스트 연습 기록 (0) | 2022.11.30 |