131. Palindrome Partitioning
来源:互联网 发布:智通预算软件 编辑:程序博客网 时间:2024/05/29 10:23
class Solution {public: vector<vector<string>> ans; vector<string> ss; vector<vector<string>> partition(string s) { if(s.size() == 0) return ans; int sz = s.size(); vector<vector<bool>> dp(sz, vector<bool>(sz, false)); for(int i = 0; i < s.size(); ++i) dp[i][i] = true; for(int i = 0; i < s.size(); ++i) dfs(dp, s, 0, i); return ans; } void dfs(vector<vector<bool>> &dp, const string &s, int low, int high){ if(low == high || (low==high-1 && s[high] == s[low]) ||(high - low > 1 && s[low] == s[high] && dp[low+1][high-1]) || judge(dp, s, low, high)){ dp[low][high] = true; ss.push_back(s.substr(low, high-low+1)); if(high == s.size() - 1){ ans.push_back(ss); }else{ for(int i = high + 1; i < s.size(); ++i){ dfs(dp, s, high+1, i); } } ss.pop_back(); } } bool judge(vector<vector<bool>> &dp, const string &s, int low, int high){ int l, h, sz = high - low + 1, times; if(sz%2){ l = h = low+sz/2; times = sz/2 + 1; } else{ l = (h = low+sz/2) - 1; times = sz/2; } while(times--){ if(!(l == h || (l==h-1 && s[h] == s[l]) || (high - low > 1 && dp[l+1][h-1] && s[l]==s[h]))) return false; dp[l][h] = true; --l;++h; } return true; }};
阅读全文
0 0
- 131. Palindrome Partitioning && 132. Palindrome Partitioning II
- LeetCode 131. Palindrome Partitioning
- [LeetCode]131.Palindrome Partitioning
- [Leetcode] 131. Palindrome Partitioning
- [leetcode] 131.Palindrome Partitioning
- 131. Palindrome Partitioning
- 131. Palindrome Partitioning
- 131. Palindrome Partitioning
- [LeetCode]131. Palindrome Partitioning
- 131. Palindrome Partitioning LeetCode
- 131. Palindrome Partitioning
- Leetcode 131. Palindrome Partitioning
- 131. Palindrome Partitioning
- 131. Palindrome Partitioning
- LeetCode 131. Palindrome Partitioning
- LeetCode *** 131. Palindrome Partitioning
- 131. Palindrome Partitioning
- LeetCode 131. Palindrome Partitioning
- HTTP与HTTPS的区别
- 单据编辑插件
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- 和最大子矩阵
- java--移动端分页--dropload
- 131. Palindrome Partitioning
- 使用eclipse打包maven
- docker registry v2认证备忘
- Qt之操作数据库(SQLite)实例
- 修改win7的登录界面背景与关机背景
- 总结一下基础和我遇到的问题 (关键字 -- 存储类型)
- 安卓textview edittext 中inputType的类型
- 字符串正则匹配
- 关于C中指针的引用,解引用与脱去解引用