您的位置:首页 > 职场人生

[LeetCode] Palindrome Partitioning II

2014-09-26 12:08 281 查看
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];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试题 leetcode dp string