中心扩散,从一点或两点出发向两边扩散,判断是否是回文子串。
注意要判断奇偶数
class Solution {
// 中心扩散,从一点或两点出发向两边扩散,判断是否是回文子串
int count=0;
public int countSubstrings(String s) {
for(int i = 0;i < s.length(); i++){
centerSpread(s,i,i);
centerSpread(s,i,i+1);//奇偶两种情况进行中心扩散
}
return count;
}
private void centerSpread(String s,int left,int right){
while(left >= 0 && right < s.length()){
if(s.charAt(left) != s.charAt(right)){
return;
}
++count;
--left;
++right;
}
}
}