๐ŸŒ— 647. ๅ›žๆ–‡ๅญไธฒ

ๅžไฝ›็ซฅๅญ2022ๅนด6ๆœˆ9ๆ—ฅๅฐไบŽ 1 ๅˆ†้’Ÿ

๐ŸŒ— 647. ๅ›žๆ–‡ๅญไธฒ

้šพๅบฆ: ๐ŸŒ—

้—ฎ้ข˜ๆ่ฟฐ

img_29.png


่งฃๆณ•

class Solution {
    public int countSubstrings(String s) {
        // ๆ€่ทฏ๏ผš
        // dp[i][j] = dp[i + 1][j - 1] + 1, [i] == [j]
        int len = s.length();
        int[][] dp = new int[len][len];
        // ๅˆๅง‹ๅŒ–
        int res = 0;
        // dp
        for(int i = len - 1; i >= 0; i --) {
            for(int j = i; j < len; j ++) {
                if(i == j) {
                    dp[i][j] = 1;
                    res ++;
                } else if(i == j - 1) {
                    if(s.charAt(i) == s.charAt(j)) {
                        dp[i][j] = 2;
                        res ++;
                    }
                } else {
                    // j - i >= 2
                    if(s.charAt(i) == s.charAt(j)) {
                        if(dp[i + 1][j - 1] > 0) {
                            // ่ฏดๆ˜Ž้‡Œ้ข็š„ๅญไธฒไนŸๆ˜ฏๅ›žๆ–‡ไธฒ
                            dp[i][j] = dp[i + 1][j - 1] + 2;
                            res ++;
                        }
                    }
                }
            }
        }
        return res;
    }
}

่พ“ๅ‡บ

img_28.png

ไธŠๆฌก็ผ–่พ‘ไบŽ: 2022/6/20 ไธ‹ๅˆ8:24:47
่ดก็Œฎ่€…: liuxianzhishou