defcountSubstrings(self, s):"""
:type s: str
:rtype: int
"""#dp定义为i,j是否是一个回文子串#是的话答案加一,并记录,记录的原因是因为dp[i][j]是由dp[i+1][j-1]加上两端的单词转化来的
res =0
n =len(s)
dp =[[0]*n for i inrange(n)]for i inrange(n-1,-1,-1):for j inrange(i,n):if s[i]== s[j]and(j-i <=1or dp[i+1][j-1]):
dp[i][j]=1
res +=1return res
defcountSubstrings(self, s):"""
:type s: str
:rtype: int
"""
n =len(s)
res =0for i inrange(2*n-1):
left = i/2
right = i/2+ i%2while left >=0and right < n and s[left]== s[right]:
res +=1
left -=1
right +=1return res