首页 > 其他 > 详细

[LC] 647. Palindromic Substrings

时间:2020-03-29 10:52:57      阅读:27      评论:0      收藏:0      [点我收藏+]

Given a string, your task is to count how many palindromic substrings in this string.

The substrings with different start indexes or end indexes are counted as different substrings even they consist of same characters.

Example 1:

Input: "abc"
Output: 3
Explanation: Three palindromic strings: "a", "b", "c".

 

Example 2:

Input: "aaa"
Output: 6
Explanation: Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".

 

Solution 1

class Solution {
    public int countSubstrings(String s) {
        int len = s.length();
        int res = 0;
        boolean [][] isPalin = new boolean[len][len];
        for (int i = 0; i < len; i++) {
            for (int j = 0; j <= i; j++) {
                if (s.charAt(i) == s.charAt(j) && (i <= j + 2 || isPalin[i - 1][j + 1])) {
                    isPalin[i][j] = true;
                    res += 1;
                }
            }
        }
        return res;
    }
}

 

Solution 2

class Solution {
    public int countSubstrings(String s) {
        int len = s.length();
        int[] count = new int[1];
        for (int i = 0; i < len; i++) {
            getPalin(s, i, i, count);
            getPalin(s, i, i + 1, count);
        }
        return count[0];
    }
    
    private void getPalin(String s, int left, int right, int[] count) {
        // need to ensure left, right value for while
        while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
            count[0] += 1;
            left -= 1;
            right += 1;
        }
    } 
}

 

[LC] 647. Palindromic Substrings

原文:https://www.cnblogs.com/xuanlu/p/12591012.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!