分割回文字符串
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。
所有方案:回溯
void backtrack(string& s, vector<string>& temp, int id, vector<vector<string>>& res){
if(id == s.size()){
res.push_back(temp);
return;
}
for(int j=id; j < s.size(); j++){
if(dp[id][j] == false) //i~j不能组成回文字符串
continue;
string a = s.substr(id,j-id+1);
temp.push_back(a);
backtrack(s, temp, j+1, res);
temp.pop_back();
}
return;
}
vector<vector<string>> partition(string s) {
int n = s.size();
for(int i=n-1;i>=0;i--){
for(int j