中心扩散,从一点或两点出发向两边扩散,判断是否是回文子串。
注意要判断奇偶数
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;
}
}
}
该博客介绍了一种基于中心扩散的算法来判断字符串中是否存在回文子串。通过对字符串的每个字符和相邻字符作为中心进行扩散,检查扩散过程中字符是否相等,从而确定回文子串。算法考虑了奇偶数长度的情况,并通过计数器记录回文子串的数量。
606

被折叠的 条评论
为什么被折叠?



