稍难~~
var partition = function(s) {
let res=[];
backtracking(s,[]);
return res;
function backtracking(str,temp){
if(str.length==0) res.push([...temp]);
else{
for(var i=0;i<str.length;i++){
if(isPalindrome(str,0,i)){
temp.push(str.substring(0,i+1));
backtracking(str.substr(i+1),temp);
temp.pop();
}
}
}
}
}
function isPalindrome(str,l,r){
while(l<r){
if(str[l++]!=str[r--]) return false;
}
return true;
}