LeetCode------------palindrome-partitioningII(回文2)
2016-10-05 16:09
393 查看
题目描述
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",
Return1since the palindrome partitioning["aa","b"]could be produced using 1 cut.
class Solution {
public:
int minCut(string s) {
if (s.size()==0 || s.size()==1)
return 0;
vector<int> dp(s.size(), 0);
for (int i=1; i<s.size(); i++)//dp[i]初始化
dp[i] = isPalind(s.substr(0, i+1)) ? 0:i;
for (int i=1; i<s.size(); i++){
for (int j=0; j<=i; j++){
if (isPalind(s.substr(j+1, i-j)))
dp[i] = min(dp[i], dp[j] + 1);
else
dp[i] = min(dp[i], dp[j] + i-j);
}
}
return dp[s.size()-1];
}
int isPalind(string s){
if (s.size()==0 ||s.size()==1)
return 1;
int i=0;
int j=s.size()-1;
while(i<=j){
if (s[i] != s[j])
return 0;
else{
++i;
j--;
}
}
return 1;
}
};
相关文章推荐
- Palindrome Linked List - LeetCode 判断一个链表是否是回文结构
- [分析总结:leetcode-Palindrome Linked List] 给定单链表,判断链表是否为回文。
- [LeetCode] Palindrome Linked List 回文链表
- LeetCode: Palindrome 回文相关题目
- LeetCode:Palindrome Linked List(回文链表)
- 【Leetcode】回文数字Palindrome
- LeetCode 234 Palindrome Linked List(回文链表)(*)(?)
- LeetCode------------palindrome-partitioning(回文)
- leetcode 回文系列 Palindrome
- Leetcode-680. Valid Palindrome II(判断回文)
- LeetCode234_PalindromeLinkedList (判断是否为回文链表) Java题解
- [编程题] LeetCode上的Palindrome(回文)类型的题目
- LeetCode Palindrome Linked List (回文链表)
- leetcode Palindrome Number (判断整数是否为回文)
- LeetCode 680. Valid Palindrome II (验证回文字符串 Ⅱ)
- [LeetCode] Valid Palindrome II 验证回文字符串之二
- [LeetCode] Palindrome Number & Valid Palindrome - 回文系列问题
- LeetCode-Palindrome Partitioning II-回文分割-DP优化
- [LeetCode] Palindrome Permutation II 回文全排列之二
- [LeetCode]—Palindrome Partitioning II 回文分割,求最小分割数