[Leetcode] Palindrome Partitioning

匿名 (未验证) 提交于 2019-12-02 23:49:02
原文链接:http://www.cnblogs.com/easonliu/p/3657733.html

ss

s.

s"aab",
Return

  [     ["aa","b"],     ["a","a","b"]   ]

像这样列举所有结果的只能DFS了。不过为什么我老是忘记写++low跟--high呢,都死循环了自己还不知道!

 1 class Solution {  2 public:  3     bool isPail(string &s) {  4         int low = 0, high = s.length() - 1;  5         while (low < high) {  6             if (s[low] != s[high]) {  7                 return false;  8             }  9             ++low; 10             --high; 11         } 12         return true; 13     } 14      15     void findNext(vector<vector<string> > &res, string &s, vector<string> part, int idx) { 16         if (idx == s.length()) { 17             res.push_back(part); 18             return; 19         } 20         string substr; 21         for (int len = s.length() - idx; len > 0; --len) { 22             substr = s.substr(idx, len); 23             if (isPail(substr)) { 24                 part.push_back(substr); 25                 findNext(res, s, part, idx + len); 26                 part.pop_back(); 27             } 28         } 29     } 30      31     vector<vector<string>> partition(string s) { 32         vector<vector<string> > res; 33         vector<string> part; 34         findNext(res, s, part, 0); 35         return res; 36     } 37 };

转载于:https://www.cnblogs.com/easonliu/p/3657733.html

文章来源: https://blog.csdn.net/weixin_30348519/article/details/96539679
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!