
双指针
class Solution {
public:
int num=0;
int countSubstrings(string s) {
for(int i=0;i<s.size();++i){
count(s,i,i);//回文串长度为奇数
count(s,i,i+1);//回文串长度为偶数
}
return num;
}
void count(string s,int start, int end){
while(start>=0 && end<s.size() && s[start]==s[end]){
++num;
--start;
++end;
}
}
};
本文介绍了一个使用C++实现的高效算法,该算法通过双指针技术来计算给定字符串中所有可能的回文子串数量。算法首先遍历整个字符串,对于每个字符位置,分别检查以该位置为中心的奇数长度和偶数长度的回文串。通过不断调整两个指向字符串两端的指针,可以快速判断并统计出回文子串的数量。
1776

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



