LeetCode -- 647. 回文子串

117 阅读1分钟

给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。

image.png

太难了,这道题有更高效的算法-DP(但是我不会)

    public int countSubstrings(String s) {
        int res = s.length();
        for(int i = 0;i < s.length();i++){
            for(int j = i+2;j <= s.length();j++){
                boolean is = true;
                String s1 = s.substring(i,j);
                int l = s1.length()-1;
                for(int k = 0;k <= s1.length()/2;k++){
                    if(s1.charAt(k) != s1.charAt(l)){
                        is = false;
                    }
                    l--;
                }
                if(is){
                    res++;
                }
            }
        }
        return res;
    }
}