131. Palindrome Partitioning(js)
131. Palindrome Partitioning
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
Example:
Input: "aab" Output: [ ["aa","b"], ["a","a","b"] ]
题意:字符串切割,要求子串是回文,并返回所有的切割情况
代码如下
/** * @param {string} s * @return {string[][]} */ var partition = function(s) { let res=[]; let curr=[]; function backtrack(s,start,curr){ if(start===s.length){ // res.push([...curr]); return; } for(let i=start;i<s.length;i++){ if(isPalindrome(s,start,i)){ //substr:接收两个参数,第二个选填,第一个表示切割的开始位置,第二个表示从切割位置开始切割字符的数量。若传入值为负数,则执行的时候会和字符串长度相加之后再运行 curr.push(s.substr(start,i-start+1)); backtrack(s,i+1,curr); curr.pop(); } } }; backtrack(s,0,curr); return res; }; // 判断是否回文 function isPalindrome (s,start,end){ while(start<end){ if(s[start]!==s[end]) return false; start++; end--; } return true; };