일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Trie
- 전자공학
- 신호처리
- SWIFTUI
- PYTHON
- backjoon
- 릿코드
- 백준
- 코테준비
- 이산신호처리
- 코테
- leetcode
- leet code
- DSP
- 알고리즘
- 컨볼루션
- IOS
- 코딩테스트
- 카카오 코딩테스트
- 파이썬
- 프로그래머스
- 트라이
- dft
- 알고리즘 문제풀이
- 독서노트
- Leet Coding Challenge
- SWIFT
- 스위프트
- 알고리즘문제풀이
- DTFT
Archives
- Today
- Total
매일 매일 성장하는 섭섭군
[Leet Coding Challenge] Valid Palindrome, 2020.08.01~07 본문
반응형
오늘의 문제는 Valid Palindrome 이라는 문제다. 즉, 필렌드롬이 맞는지 확인하는 문제다. 문제는 다음과 같다.
Palindrome이란?
Palindrome은 앞으로 읽으나 뒤로 읽으나 똑같은 문자열을 말한다.
예를 들어보자면 "토마토", "ABCBA", "123321"같은 문자열이 Palindrome 문자열이다.
이제 문제를 풀어보자!
주어진 문자열은 알파벳, 숫자, 띄어쓰기, 특수문자 등 여러가지가 포함된다.
문제의 조건에 알파벳과 숫자만 판단한다고 한다. Example1이 True인것을 보니 대소문자는 같은 알파벳으로 본다.
즉 "A$% B# *(#a" 이것은 Palindrome이다. 특수문자와 띄어쓰기를 제거하면 "aba"가 되기 때문이다.
-> 이렇게 문자열을 잘 가공만 해주면 문제는 쉽다. 뒤집어서 같은지만 확인하면 된다.
전체 코드는 다음과 같습니다. 질문과 피드백은 언제나 감사드립니다.
class Solution:
def isPalindrome(self, s: str) -> bool:
result = ''
s = s.lower()
for i in s :
if (i >= "a" and i <= "z") or (i >= "0" and i <= "9") :
result += i
if result == result[::-1] :
return True
else :
return False
반응형
'알고리즘 문제풀이 > LeetCode' 카테고리의 다른 글
[Leet Coding Challenge]Excel Sheet Column Number, 2020.08.08~14 (0) | 2020.08.11 |
---|---|
[Leet Coding Challenge] Add and Search Word - Data structure design, 2020.08.01~07 (0) | 2020.08.06 |
[LeetCode Top Interview Questions] Happy Number (0) | 2020.08.05 |
[Leet Coding Challenge] Power of FourSolution, 2020.08.01~07 (0) | 2020.08.04 |
[Leet Coding Challenge] Design HashSet, 2020.08.01~07 (0) | 2020.08.03 |
Comments