[LeetCode] Palindrome Partitioning II

来源:互联网 发布:即时聊天软件 行业 编辑:程序博客网 时间:2024/04/29 23:40

Given a string s, partition s such that every substring of the partition is a palindrome.

Return the minimum cuts needed for a palindrome partitioning of s.

For example, given s = "aab",
Return 1 since the palindrome partitioning ["aa","b"] could be produced using 1 cut.



public int minCut(String s) {        int len=s.length();        int[] dp= new int[len];        for(int i=0;i<len;i++){            dp[i]=i;        }        boolean[][] isPalin=new boolean[len][len];        for(int i=0;i<len;i++){            for(int j=i;j>=0;j--){                if(s.charAt(i)==s.charAt(j)&&((i-j<=1)||isPalin[j+1][i-1])){                    isPalin[j][i]=true;                    if(j==0){                        dp[i]=0;                    } else {                        dp[i]=Math.min(dp[j-1]+1,dp[i]);                    }                }            }        }        return dp[len-1];            }


0 0
原创粉丝点击