切割问题
判断回文子串
利用双指针法
var partition = function(s) {// 双指针判断回文字符串const isPalindrome =(s,l,r) =>{for(let i=l,j=r;i<j;i++,j--){if(s[i]!==s[j]) return false;}return true;}let res =[];let path =[];const sLength =s.length;const backTracing =function(startIndex){if(startIndex>=sLength){//一组切割完毕res.push([...path]);return;}for(let m =startIndex;m<sLength;m++){if(!isPalindrome(s,startIndex,m)) continue;//不是回文就跳过找下一组path.push(s.slice(startIndex,m+1));//截取子串放入path,左闭右开backTracing(m+1);//切割过的地方不再切割,所以从m+1开始path.pop(); //回溯}}backTracing(0);return res;};

