[LeetCode]Palindrome Partitioning 找出所有可能的组合回文
生活随笔
收集整理的这篇文章主要介绍了
[LeetCode]Palindrome Partitioning 找出所有可能的组合回文
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
给定一个字符串,切割字符串,这样每个子字符串是一个回文字符串。
要找出所有可能的组合。
办法:暴力搜索+回溯
class Solution { public:int *b,n;vector<vector<string> >ans;void dfs(int id,string &s,int len){if(id>=n){if(len>0){vector<string>vt;vt.push_back(s.substr(0,b[0]+1));for(int i=1;i<len;++i){vt.push_back(s.substr(b[i-1]+1,b[i]-b[i-1]));}ans.push_back(vt);}return;}int j,k;b[len]=id;dfs(id+1,s,len+1);for(j=id+1;j<n;++j){for(k=0;id+k<j-k&&s[id+k]==s[j-k];++k);if(id+k>=j-k){b[len]=j;dfs(j+1,s,len+1);}}}vector<vector<string> > partition(string s) {n=s.size();if(n==0)return ans;if(n==1){vector<string>vt;vt.push_back(s);ans.push_back(vt);return ans;}b=new int[n];dfs(0,s,0);return ans;} };版权声明:本文博主原创文章,博客,未经同意不得转载。
转载于:https://www.cnblogs.com/mfrbuaa/p/4886250.html
总结
以上是生活随笔为你收集整理的[LeetCode]Palindrome Partitioning 找出所有可能的组合回文的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 大道至简--团队
- 下一篇: 自动解析复杂类的属性 实现归档或者进行序