首页 > 代码库 > Palindrome Partitioning
Palindrome Partitioning
方法:使用深度遍历的方法,时间复杂度O(2^n)
class Solution { public: vector<vector<string>> partition(string s) { vector<vector<string>> result; vector<string> path; dfs(s, path, result, 0); return result; } void dfs(string &s, vector<string> &path, vector<vector<string>> &result, int start) { if(start == s.size()) { result.push_back(path); return; } for(int i=start; i<s.size(); ++i) { if(isPalindrome(s, start, i)) { path.push_back(s.substr(start, i-start +1)); dfs(s, path, result, i+1); path.pop_back(); } } } bool isPalindrome(string s, int start, int end) { while(start < end && s[start] == s[end]) { ++start; --end; } return (start >= end); } };
Palindrome Partitioning
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。