【双指针】LeetCode 647. 回文子串

题目链接

647. 回文子串

思路

使用中心扩散法解决,在 【双指针】LeetCode 5. 最长回文子串 的代码上稍作修改即可。

代码

class Solution {
    public int countSubstrings(String s) {
        int result = 0;

        for(int i = 0; i < s.length(); i++){
            result += spread(s, i, i);
            result += spread(s, i, i + 1);
        }

        return result;
    }

    int spread(String s, int left, int right){
        while(left >= 0 && right < s.length()){
            if(s.charAt(left) != s.charAt(right)){
                break;
            }
            left--;
            right++;
        }

        return (right - left) / 2;
    }
}
posted @ 2023-01-27 21:47  Frodo1124  阅读(32)  评论(0编辑  收藏  举报