Palindromic Substrings(dp)
Input:
"abc"
Output:
3
Explanation:
Three palindromic strings: "a", "b", "c".Input:
"aaa"
Output:
6
Explanation:
Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".Last updated
Input:
"abc"
Output:
3
Explanation:
Three palindromic strings: "a", "b", "c".Input:
"aaa"
Output:
6
Explanation:
Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".Last updated
class Solution:
def countSubstrings(self, s):
"""
:type s: str
:rtype: int
"""
if not s or len(s) == 0:
return 0
n = len(s)
dp = [[0]*n for _ in range(n)]
cnt = dp[0][0] = 1
for i in range(1,n):
dp[i][i] = 1
cnt += 1
for j in range(i):
if s[i] == s[j] and (i == 1 + j or dp[j+1][i-1] == 1):
dp[j][i] = 1
cnt += 1
return cnt