131.分割回文串
class Solution {
public:
string s;vector<vector<string>>res;vector<string>cur;
bool valid(int l,int r){
int lptr=l,rptr=r;while(lptr<=r){if(s[lptr]!=s[rptr])return false;lptr++;rptr--;}return true;
}
void bt(int start){
if(start==s.size()){res.push_back(cur);return;}
for(int i=start;i<s.size();i++){
if(valid(start,i)){
cur.push_back(s.substr(start,i-start+1));
bt(i+1);
cur.pop_back();
}
}
}
vector<vector<string>> partition(string s) {
this->s=s;bt(0);return res;
}
};