문제 출처
https://leetcode.com/problems/valid-palindrome/
Valid Palindrome - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
문제 설명
주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다.
문제 풀이
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 |