leetcode困难132分割回文串

Posted qq_40707462

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode困难132分割回文串相关的知识,希望对你有一定的参考价值。


思路:动态规划
131、分割回文串 的回溯思路会超时
131 是要记录每一种分割情况,本题只记录最小分割次数,动态规划即可。dp2[i]记录[0,i]里的最小次数

class Solution {
    public int minCut(String s) {
        int len=s.length();
        boolean[][] dp=new boolean[len][len];
        isVaild(dp,s);

        int[]dp2=new int[len];
        for(int r=1;r<len;r++){
            if(dp[0][r]==false){
                dp2[r]=dp2[r-1]+1;//最坏情况,当前字符单独为一段
                for(int l=0;l<r;l++){
                    if(dp[l][r]) dp2[r]=Math.min(dp2[r],dp2[l-1]+1);
                }
            }
        }
        return dp2[len-1];
    }

    public void isVaild(boolean[][]dp,String s){
        int len=s.length();
        for(int i=0;i<len;i++){
            for(int j=0;j<=i;j++){
                if(s.charAt(i)==s.charAt(j)){
                    if(i-j<3) dp[j][i]=true;
                    else dp[j][i]=dp[j+1][i-1];
                }
            }
        }

    }
}

以上是关于leetcode困难132分割回文串的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode No.132 分割回文串 II(动态规划)

Leetcode No.132 分割回文串 II(动态规划)

leetcode——132. 分割回文串 II

LeetCode 132. 分割回文串 II

132 Palindrome Partitioning II 分割回文串 II

131. 分割回文串