Skip to content

Commit 973841f

Browse files
committed
longest-palindromic-substring solution (py)
1 parent 50a7da3 commit 973841f

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
"""
2+
https://leetcode.com/problems/longest-palindromic-substring/
3+
4+
๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๊ธด ํŒฐ๋ฆฐ๋“œ๋กฌ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ์ฐพ์•„์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด๋ผ.
5+
6+
๋ฌธ์ œ ํ’€์ด
7+
8+
1. ๋ฌธ์ž์—ด `s`์˜ ๋ชจ๋“  ์ธ๋ฑ์Šค `i`๋ฅผ ๊ธฐ์ค€์œผ๋กœ,
9+
2. ๋‘ ์ข…๋ฅ˜์˜ ์ค‘์‹ฌ์—์„œ ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ํ™•์žฅํ•ด ๋ณธ๋‹ค:
10+
- ํ™€์ˆ˜ ๊ธธ์ด: `s[i]`๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ขŒ์šฐ ํ™•์žฅ (`i, i`)
11+
- ์ง์ˆ˜ ๊ธธ์ด: `s[i]`์™€ `s[i+1]`์„ ์ค‘์‹ฌ์œผ๋กœ ์ขŒ์šฐ ํ™•์žฅ (`i, i+1`)
12+
3. ๊ฐ ์ค‘์‹ฌ์—์„œ while๋ฌธ์œผ๋กœ `s[left] == s[right]`์ธ ๋™์•ˆ ํ™•์žฅ
13+
4. ๊ฐ€์žฅ ๊ธด ํŒฐ๋ฆฐ๋“œ๋กฌ ๋ฌธ์ž์—ด์„ ๊ณ„์† ์—…๋ฐ์ดํŠธ
14+
5. ์ตœ์ข…์ ์œผ๋กœ ๊ฐ€์žฅ ๊ธด ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค
15+
16+
TC: O(n^2)
17+
SC: O(1)
18+
"""
19+
20+
21+
class Solution:
22+
def longestPalindrome(self, s: str) -> str:
23+
def expand(left: int, right: int) -> str:
24+
while left >= 0 and right < len(s) and s[left] == s[right]:
25+
left -= 1
26+
right += 1
27+
28+
return s[left + 1 : right]
29+
30+
res = ""
31+
for i in range(len(s)):
32+
temp1 = expand(i, i) # ํ™€์ˆ˜ ๊ธธ์ด ํŒฐ๋ฆฐ๋“œ๋กฌ
33+
temp2 = expand(i, i+1) # ์ง์ˆ˜ ๊ธธ์ด ํŒฐ๋ฆฐ๋“œ๋กฌ
34+
if len(temp1) > len(res):
35+
res = temp1
36+
if len(temp2) > len(res):
37+
res = temp2
38+
return res

0 commit comments

Comments
ย (0)