Medium
Given a string s
, return the number of palindromic substrings in it.
A string is a palindrome when it reads the same backward as forward.
A substring is a contiguous sequence of characters within the string.
Example 1:
Input: s = “abc”
Output: 3
Explanation: Three palindromic strings: “a”, “b”, “c”.
Example 2:
Input: s = “aaa”
Output: 6
Explanation: Six palindromic strings: “a”, “a”, “a”, “aa”, “aa”, “aaa”.
Constraints:
1 <= s.length <= 1000
s
consists of lowercase English letters.class Solution:
def countSubstrings(self, s: str) -> int:
result = 0
i = 0
while i < len(s):
l = i
while i < len(s) and s[i] == s[l]:
i+=1
r = i - 1
for j in range(r-l+1):
result += j+1
while l-1>=0 and r+1 < len(s) and s[l-1] == s[r+1]:
result+=1
l-=1
r+=1
return result