문제 출처
https://leetcode.com/problems/valid-palindrome/
문제 설명
주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다.
문제 풀이
class Solution:
def isPalindrome(self, s: str) -> bool:
strs = []
for char in s: # 모든 입력 s를 반복
if char.isalnum(): # 각 단어가 문자 혹은 숫자인 경우,
strs.append(char.lower()) # 소문자로 변경하여 strs 배열에 저장
while len(strs) > 1: # strs의 길이가 1보다 크다면,
if strs.pop(0) != strs.pop(): # strs의 1번째 값과 마지막 값이 같지 않다면,
return False # False 출력
return True # 모든 경우를 통과하면 True
- 입력 문자열을 문제의 상황에 맞게 문자, 숫자만으로 정제합니다.
- 대 소문자를 구분하지 않으므로 소문자 혹은 대문자로 모두 치환해줍니다.
- 변환된 문자를 팰린드롬인지 확인하기 위해 처음과 마지막 값을 비교하며 팰린드롬여부를 판별합니다.
'알고리즘' 카테고리의 다른 글
[알고리즘] 배열-두 수의 합 - Jungyu Ko (0) | 2022.04.23 |
---|---|
[알고리즘] 문자열 조작-그룹 애너그램 - Jungyu Ko (0) | 2022.03.20 |
[알고리즘] 문자열 조작-가장 흔한 단어 - Jungyu Ko (0) | 2022.03.20 |
[알고리즘] 문자열조작-로그파일 재정렬 - Jungyu Ko (0) | 2022.03.20 |
[알고리즘] 문자열조작-문자열 뒤집기 - Jungyu Ko (0) | 2022.03.20 |