Day132 | 灵神 | 回溯算法 | 子集型 分割回文子串
131.分割回文子串
131. 分割回文串 - 力扣(LeetCode)
思路:
其实就和子集一样的,每次加入一个字符然后判断是不是回文串,是的话加入答案集合不是的话就不加入答案
笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧
回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili
完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| class Solution { public: vector<vector<string>> res; bool is(string s,int begin,int end) { for(int i=begin,j=end;i<j;i++,j--) { if(s[i]!=s[j]) return false; } return true; } void backtracking(string s,vector<string> path,int index) { if(index==s.size()) { res.push_back(path); return; } for(int i=index;i<s.size();i++) { if(is(s,index,i)) { path.push_back(string(s.begin()+index,s.begin()+i+1)); backtracking(s,path,i+1); path.pop_back(); } } } vector<vector<string>> partition(string s) { vector<string> path; backtracking(s,path,0); return res; } };
|