首页 > 代码库 > Leetcode#131 Palindrome Partitioning
Leetcode#131 Palindrome Partitioning
原题地址
因为要找所有的解,只能搜索+回溯了
看来数据量比较小,关于回文串的判断没有使用动态规划也可以过
代码:
1 vector<vector<string> > res; 2 3 bool palindromep(string s) { 4 int i = 0; 5 int j = s.length() - 1; 6 while (i < j && s[i] == s[j]) { 7 i++; 8 j--; 9 }10 return i >= j;11 }12 13 void dfs(string s, vector<string> ans, int pos) {14 if (pos == s.length())15 res.push_back(ans);16 for (int len = 1; pos + len <= s.length(); len++) {17 if (palindromep(s.substr(pos, len))) {18 ans.push_back(s.substr(pos, len));19 dfs(s, ans, pos + len);20 ans.pop_back();21 }22 }23 }24 25 vector<vector<string>> partition(string s) {26 dfs(s, vector<string>(), 0);27 return res;28 }
Leetcode#131 Palindrome Partitioning
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。