解题思路
开始用的是非递归的方法写,一直出错,看了下讨论区,原来是要用dfs深度搜索搜索所有解。字符串从小到大进行划分,若为回文串则继续搜索,知道s为空时将当前的向量存入res中
代码
void dfs(string s,vector<string>& cur,vector<vector<string>>& res){
if(s == ""){
res.push_back(cur);
return;
}
for(int i = 1;i <= s.size();i++){
string tmp = s.substr(0,i);
if(ispalindromic(tmp)){
cur.push_back(tmp);
dfs(s.substr(i,s.size() - i),cur,res);
cur.pop_back();
}
}
}