分析
dfs()整个字符串即可。
C++ 代码
class Solution {
public:
int n;
vector<vector<string>> ans;
bool check(string s) //判断当前字符串是否为回文串
{
return s==string(s.rbegin(),s.rend());
}
void dfs(int u,vector<string> &v,string s) //当前下标 当前字符串数组 字符串s
{
if(u==n){
ans.push_back(v);
return ;
}
string temp;
for(int i=u;i<n;i++)
{
temp+=s[i];
if(check(temp))
{
v.push_back(temp);
dfs(i+1,v,s);
v.pop_back();
}
}
}
vector<vector<string>> partition(string s) {
n=s.size();
vector<string> v;
dfs(0,v,s);
return ans;
}
};