class Solution {
public:
vector<vector<string>> ans;
vector<vector<string>> partition(string s) {
vector<string> cur;
dfs(s,cur);
return ans;
}
bool ishui(string a){
string b = a;
reverse(a.begin(),a.end());
return a==b;
}
void dfs(string s,vector<string> cur){
if(s==""){
ans.push_back(cur);
return ;
}
for(int i=1; i<=s.length(); i++){
string a = s.substr(0,i);
if(ishui(a)){
cur.push_back(a);
dfs(s.substr(i,s.length()-i),cur);
cur.pop_back();
}
}
}
};
时间有点长
递归,回溯,传递串的长度还需要研究