LeetCode647.Palindromic-Substrings<回文子串>

题目:

LeetCode647.Palindromic-Substrings<回文子串>_第1张图片

 

思路:

LeetCode647.Palindromic-Substrings<回文子串>_第2张图片

错误代码:(缺少部分判断)

LeetCode647.Palindromic-Substrings<回文子串>_第3张图片

 

 使用的是寻找回文子串的方法。以一个点为中心向两边扫描。但是有一点小问题。

因为回文子串是分奇偶的,所以需要两种判断方式。

看了下答案后发现我的代码距离答案一步之遥。还差一个判断偶数的。

LeetCode647.Palindromic-Substrings<回文子串>_第4张图片

 

代码是:

//code
 
class Solution {
public:
    int countSubstrings(string s) {
        int n = s.length();
        int res = 0;
        for (int i = 0; i < n; i++) {
            // 以 s[i] 为中心的回文子串
            int l = i, r = i;
            while (l >= 0 && r < n && s[l] == s[r]) {
                res++;
                l--;
                r++;
            }
            // 以 s[i] 和 s[i+1] 为中心的回文子串
            l = i, r = i + 1;
            while (l >= 0 && r < n && s[l] == s[r]) {
                res++;
                l--;
                r++;
            }
        }
        return res;
    }
};

你可能感兴趣的:(算法,c++,leetcode)