class Solution {
public:
vector<vector<string>>res;
vector<string>temp;
vector<vector<string>> partition(string s) {
backtracking(s,0);
return res;
}
void backtracking(string ori,int st)
{
if(st>=ori.size())
{
res.push_back(temp);
return;
}
for(int i=st;i<ori.size();i++){
if(Judge(ori,st,i)==true)
temp.push_back(ori.substr(st,i-st+1));
else
continue;
backtracking(ori,i+1);
temp.pop_back();
}
}
bool Judge(string s,int st,int i)
{
for(int j=st;j<=(i+st)/2;j++)
{
if(s[j]!=s[i+st-j])
return false;
}
return true;
}
};