题目:题目链接
思路:就是找中心点。然后设置双指针l,r从两边开始找回文串。
这篇题解讲的挺好的。注意中心点可以是一个,也可以是两个哦。看代码吧:
class Solution {
public:
int countSubstrings(string s) {
int n = s.size();
int ans = 0;
for (int i = 0; i < n; ++i) {//遍历每个字符,因为每个字符都可以单中心点或双中心点
for (int j = 0; j < 2; ++j) {//j=0表示单个中心点,j=1表示有两个中心点,也就相当于两个数中间的间隔是中心点 如a#b,#可以理解为中心点。
int l = i, r = i + j;
while (l >= 0 && r < n && s[l--] == s[r++]) ans++;//如果满足就是回文串
}
}
return ans;
}
};
加油加油加油!!!其实官方题解里面有很多特别好的解答,可以去看看他们的。
加油加油加油加油加加油!!!!!