题目:
给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。
回文字符串 是正着读和倒过来读一样的字符串。
子字符串 是字符串中的由连续字符组成的一个序列。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。
解法:
中心扩散法
func countSubstrings(s string) int {
cnt := 0
for i := range s {
cnt = cnt + findSubStrings(i, i, s)+ findSubStrings(i, i + 1, s)
}
return cnt
}
func findSubStrings(left, right int, str string) int {
ans := 0
for 0 <= left && right < len(str) && str[left] == str[right] {
ans ++
left --
right ++
}
return ans
}