Skip to content

Commit e1d03cd

Browse files
committed
feat: Palindromic Substrings 알고리즘 개선
- DP 풀이법 추가
1 parent 137592b commit e1d03cd

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

palindromic-substrings/jinah92.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,21 @@ def countSubstrings(self, s: str) -> int:
1919

2020

2121
return result
22+
23+
# DP 풀이
24+
# O(N^2) times, O(N^2) spaces
25+
# start, end 지점을 순회하면서 이전 계산값을 재사용하여 회문을 파악
26+
class Solution2:
27+
def countSubstrings(self, s: str) -> int:
28+
dp = {}
29+
30+
for end in range(len(s)):
31+
for start in range(end, -1, -1):
32+
if start == end:
33+
dp[(start, end)] = True
34+
elif start + 1 == end:
35+
dp[(start, end)] = s[start] == s[end]
36+
else:
37+
dp[(start, end)] = s[start] == s[end] and dp[(start+1, end-1)]
38+
39+
return list(dp.values()).count(True)

0 commit comments

Comments
 (0)