131. 分割回文串
同组合问题,使用startIndex指针进行递归,每次判断当前字符串是回文。
class Solution {public:bool ispalindrome(string& s,int start, int end){for(int i=start,j=end;i<j;i++,j--){if(s[start]!=s[end])return false;}return true;}void backtracking(string& s,int startIndex){if(startIndex >= s.size()){result.push_back(path);return;}for(int i =startIndex;i<s.size();i++){if(ispalindrome(s,startIndex,i)){string str = s.substr(startIndex,i-startIndex+1);path.push_back(str);}elsecontinue;backtracking(s,i+1);path.pop_back();}}vector<vector<string>> partition(string s) {backtracking(s,0);return result;}vector<string> path;vector<vector<string>> result;};
