首页 > Web开发 > 详细

131. Palindrome Partitioning(js)

时间:2019-05-26 23:09:00      阅读:137      评论:0      收藏:0      [点我收藏+]

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;
};

 

131. Palindrome Partitioning(js)

原文:https://www.cnblogs.com/xingguozhiming/p/10927930.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!