๋ฌธ์ ์ ๋ชฉ | ์ ๋ต๋ฅ | ๋์ด๋ |
125. valid-palindrome | 44.5% | Easy |
๋ฌธ์ ์์ฝ
์ฃผ์ด์ง ๋ฌธ์์ด์ด ํฐ๋ฆฐ๋๋กฌ์ด๋ฉด ์ฐธ์, ์๋๋ผ๋ฉด ๊ฑฐ์ง์ ๋ฐํํ๋ผ
์กฐ๊ฑด 1) ๋ชจ๋ ๋๋ฌธ์๋ฅผ ์๋ฌธ์๋ก ๋ฐ๊พธ๋ผ
์กฐ๊ฑด 2) ์ซ์์ ๋ฌธ์๊ฐ ์๋ ๋ถ๋ถ์ ๋ชจ๋ ์ง์๋ผ
์กฐ๊ฑด 3) ํ ๋ฆฐ๋๋กฌ์ด๋ ์์์๋ถํฐ ์ฝ์ด์จ ๊ฒ๊ณผ ๋ค์์๋ถํฐ ์ฝ์ด์จ ๊ฒ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค(์ข์ฐ๋์นญ)
๊ณตํตํ์ด
Step1. ๋๋ฌธ์๋ฅผ ์๋ฌธ์๋ก ๋ฐ๊พธ๊ธฐ + ์ซ์์ ๋ฌธ์๋ฅผ ์ ์ธํ ๋ฌธ์์ด ์ญ์
Step2. ํ ๋ฆฐ๋๋กฌ ํ๋จ
Step1-1. ๋๋ฌธ์๋ฅผ ์๋ฌธ์๋ก ๋ฐ๊พธ๊ธฐ -> string.lower() ํจ์ ์ด์ฉ
๋ฌธ์์ด ๋๋ฌธ์๋ก ๋ณ๊ฒฝํ๋ ํจ์ | string.upper() |
๋ฌธ์์ด ์๋ฌธ์๋ก ๋ณ๊ฒฝํ๋ ํจ์ | string.lower() |
๋ฌธ์์ด์ ๋ชจ๋ ๋ฌธ์๊ฐ ๋๋ฌธ์์ธ์ง ํ์ธํ๋ ํจ์ | string.isupper() |
๋ฌธ์์ด์ ๋ชจ๋ ๋ฌธ์๊ฐ ์๋ฌธ์์ธ์ง ํ์ธํ๋ ํจ์ | string.islower() |
Step1-2. ์ซ์์ ๋ฌธ์๋ฅผ ์ ์ธํ ๋ฌธ์์ด ์ญ์ -> if ์ด์ฉํด์ ํ๋จ | ์ ๊ท์ ์ด์ฉ
๋ฌธ์์ด์ ๋ชจ๋ ๋ฌธ์๊ฐ ์์ด๋ ํ๊ธ์ธ์ง ํ์ธํ๋ ํจ์ | string.isalpha() |
๋ฌธ์์ด์ ๋ชจ๋ ๋ฌธ์๊ฐ ์์ด๋ ํ๊ธ์ด๋ ์ซ์์ธ์ง ํ์ธํ๋ ํจ์ | string.isalnum() |
๊ธฐ๋ณธ ์ ๊ทํํ์ ๊ธฐํธ
์ซ์์ ๋งค์น | [0-9] | \d |
์ซ์๊ฐ ์๋๊ฒ๊ณผ ๋งค์น | [^0-9] | \D |
์ํ๋ฒณ ๋ฌธ์์ ๋งค์น | [a-zA-Z] | |
์ํ๋ฒณ ๋ฌธ์+์ซ์์ ๋งค์น | [a-zA-z0-9_] | \w |
์ํ๋ฒณ ๋ฌธ์์ ์ซ์๊ฐ ์๋๊ฒ๊ณผ ๋งค์น | [^a-zA-z0-9_] | \W |
์ค๋ฐ๊ฟ์ ์ ์ธํ ๋ชจ๋ ๋ฌธ์์ ๋งค์น | . | |
๋ฐ๋ก ์์ ๋ฌธ์ ๋ฐ๋ณต(0~๋ฌดํ) | * | |
๋ฐ๋ก ์์ ๋ฌธ์ ๋ฐ๋ณต(1~๋ฌดํ) | + | |
๋ฐ๋ก ์์ ๋ฌธ์ ํน์ ํ์๋งํผ ๋ฐ๋ณต | {n} | |
๋ฐ๋ก ์์ ๋ฌธ์ ํน์ ํ์ ๋ฒ์ ๋งํผ ๋ฐ๋ณต | {n, m} |
Step2. ํ ๋ฆฐ๋๋กฌ ํ๋จ
- ๋ฐฐ์ด์ pop ๊ธฐ๋ฅ์ ์ด์ฉํด ๋ฌธ์๋ก ๋น๊ต (pop(0)๊ณผ pop() ๋น๊ต) $O(n^{2})$
- ๋ฐํฌ ์๋ฃํ์ ์ด์ฉํด ์ต์ ํ (popleft()์ pop() ๋น๊ต) $O(n)$
์ด์ : pop(0)์ ์๊ฐ๋ณต์ก๋๋ $O(n)$ ์ด์ง๋ง popleft()๋ ์๋ฐฉํฅ ๋งํฌ๋๋ฆฌ์คํธ๋ก ๊ตฌํ๋์ด ์์ด ์๊ฐ๋ณต์ก๋๊ฐ $O(1)$ ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋ฌธ์์ด ์ฌ๋ผ์ด์ฑ ์ด์ฉํด์ ๋ฌธ์์ด ํต์งธ๋ก ๋น๊ต
๊ตฌํ
def isPalindrome(self, s:str) -> bool:
## ์๋ฌธ์๋ก ๋ณํ
s.lower()
## ์ซ์, ์ํ๋ฒณ๋ง ๋จ๊ธฐ๊ธฐ
s=re.sub(['^a-z0-9']. '', s)
#์ฌ๋ผ์ด์ฑ ์ด์ฉํด์ ๋ฌธ์์ด์ ๋ค์ง์ ํ ๊ฐ์ด ๊ฐ์์ง ํ์ธ
return s==s[::-1]
'์๊ณ ๋ฆฌ์ฆ๐ฅ > ๋ฌธ์ ํ์ด (Python)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LeetCode] 49. group-anagrams (Medium) 2023/4/28 (0) | 2023.04.28 |
---|---|
[LeetCode] 937. reorder-data-in-log-files (Easy) 2023/4/27 (0) | 2023.04.27 |
[LeetCode] 344. reverse-string (Easy) 2023/4/27 (0) | 2023.04.27 |
[python] 1. ์ฝ๋ฉํ ์คํธ์ ํ์ ์ฒดํฌ ๋ชฉ๋ก (0) | 2023.04.26 |
[python] 0. ์ฝ๋ฉ ํ ์คํธ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (4/26 ์ ๋ฐ์ดํธ) (0) | 2023.04.20 |