Palindrome Partitioning(C++分割回文串)

痛定思痛。 2023-01-23 06:52 128阅读 0赞

(1)回溯

  1. class Solution {
  2. private:
  3. vector<vector<string>> vec;
  4. public:
  5. bool judge(string &s,int start,int end) {
  6. while(start<end) {
  7. if(s[start]!=s[end]) return false;
  8. start++;
  9. end--;
  10. }
  11. return true;
  12. }
  13. void helper(vector<string> v,string &s,int start) {
  14. if(start>=s.length()) vec.push_back(v);
  15. for(int i=start;i<s.length();i++) {
  16. if(judge(s,start,i)) {
  17. v.push_back(s.substr(start,i-start+1));
  18. helper(v,s,i+1);
  19. v.pop_back();
  20. }
  21. }
  22. return;
  23. }
  24. vector<vector<string>> partition(string s) {
  25. vector<string> v;
  26. helper(v,s,0);
  27. return vec;
  28. }
  29. };

发表评论

表情:
评论列表 (有 0 条评论,128人围观)

还没有评论,来说两句吧...

相关阅读

    相关 131. 分割

    131. 分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。