Skip to content

Commit 78f0cd6

Browse files
committed
feat: Solve valid-palindrome problem
1 parent 2cde15a commit 78f0cd6

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

โ€Žvalid-palindrome/hu6r1s.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
class Solution:
2+
"""
3+
1. ๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉฐ isdigit() or isalpha()์ด True๋ผ๋ฉด string์— ๋ถ™์ด๊ธฐ
4+
๋ฐ˜๋ณต๋ฌธ์ด ๋๋‚˜๋ฉด ์†Œ๋ฌธ์ž๋กœ ๋ชจ๋‘ ๋ณ€๊ฒฝํ•˜๊ณ  ๋’ค์ง‘์€ ๋ฌธ์ž์™€ ๊ฐ™์œผ๋ฉด True ๋ฐ˜ํ™˜
5+
์‹œ๊ฐ„ ๋ณต์žก๋„ (Time Complexity):
6+
- ๋ฌธ์ž์—ด ์ˆœํšŒ: O(n)
7+
- ๋ฌธ์ž์—ด ๋ง๋ถ™์ด๊ธฐ(string += i): O(n^2) โ† ํŒŒ์ด์ฌ์—์„œ ๋ฌธ์ž์—ด์€ ๋ถˆ๋ณ€์ด๋ผ ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด ์ƒ์„ฑ
8+
- ์†Œ๋ฌธ์ž ๋ณ€ํ™˜ ๋ฐ ์Šฌ๋ผ์ด์‹ฑ ๋น„๊ต: ๊ฐ๊ฐ O(n)
9+
์ตœ์ข… ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n^2)
10+
11+
๊ณต๊ฐ„ ๋ณต์žก๋„ (Space Complexity):
12+
- ํ•„ํ„ฐ๋ง๋œ ๋ฌธ์ž์—ด ์ €์žฅ์šฉ string: O(n)
13+
- ์—ญ์ˆœ ๋ฌธ์ž์—ด ์ƒ์„ฑ: O(n)
14+
์ตœ์ข… ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
15+
16+
2. ๋ฌธ์ž์—ด๊ณผ ์ˆซ์ž์ธ ๊ฒƒ๋งŒ ๋ฝ‘์•„ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ๊ธฐ
17+
์‹œ๊ฐ„ ๋ณต์žก๋„ (Time Complexity):
18+
- ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜: O(n)
19+
- ๊ฐ ๋ฌธ์ž์— ๋Œ€ํ•ด isalnum() โ†’ O(1), lower() โ†’ O(1) ์ด๋ฏ€๋กœ ์ „์ฒด O(n)
20+
- ๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ ๋ฐ ๋น„๊ต(string == string[::-1]): O(n)
21+
์ด ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
22+
23+
๊ณต๊ฐ„ ๋ณต์žก๋„ (Space Complexity):
24+
- ๋ฆฌ์ŠคํŠธ string์— ์ตœ๋Œ€ n๊ฐœ์˜ ๋ฌธ์ž ์ €์žฅ: O(n)
25+
- ์Šฌ๋ผ์ด์‹ฑ๋œ string[::-1]๋„ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ O(n)
26+
์ด ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
27+
"""
28+
def isPalindrome(self, s: str) -> bool:
29+
# string = ""
30+
31+
# for i in s:
32+
# if i.isdigit() or i.isalpha():
33+
# string += i
34+
# string = string.lower()
35+
# return True if string == string[::-1] else False
36+
37+
string = [i.lower() for i in s if i.isalnum()]
38+
return True if string == string[::-1] else False

0 commit comments

Comments
ย (0)