647.回文子串

151 阅读1分钟

题目:
给你一个字符串 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
}