难度中等282
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。
class Solution:
def countSubstrings(self, s: str) -> int:
dp = [0 for i in range(len(s))]
ans = 0
for i in range(len(s) - 1, -1, -1):
for j in range(len(s) - 1, i - 1, -1):
if i == j:dp[j] = 1
elif s[i] == s[j]:
if j - i < 3:
dp[j] = 1
else:
dp[j] = dp[j - 1]
else:
dp[j] = 0
ans += sum(dp)
return ans