132. Palindrome Partitioning II

代码1

DP
Runtime: 9 ms, faster than 82.70% of Java online submissions for Palindrome Partitioning II.

class Solution {
    public int minCut(String s) {
        char[] c = s.toCharArray();
        int n = c.length;
        boolean[][] isPalindrome = new boolean[n][n];
        int[] cut = new int[n];
        for (int i = 0; i < n; i++) {
            int min = i;
            for (int j = 0; j <= i; j++) {
                if (c[j] == c[i] && (j + 1 > i - 1||isPalindrome[j + 1][i - 1])) {
                    isPalindrome[j][i] = true;
                    if (j == 0) {
                        min = 0;
                    } else {
                        min = Math.min(min, cut[j - 1] + 1);
                    }
                }
            }
            cut[i] = min;
        }
        return cut[n - 1];
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容