[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 找出所有可能的组合回文的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大道至简--团队
- 下一篇: 自动解析复杂类的属性 实现归档或者进行序