
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
For example, given s = “aab”,
Return
[
[“aa”,”b”],
[“a”,”a”,”b”]
]
vector<vector<string>> partition(string s){ vector<vector<string> >res; vector<string>path; dfs(s,path,res); return res;}private:void dfs(string s, vector<string>& path, vector<vector<string> >& res){ if(s.size() == 0){ res.push_back(path); return; } for(int i=0; i<s.size(); i++){ int left = 0, right = i; while(left < right){ if(s[left] == s[right]){ left++; right--; } else break; } if(left >= right){//有回文,前面 path.push_back(s.substr(0,i+1));//i+1个字符 dfs(s.substr(i+1),path,res); path.pop_back(); } }}




近期评论