zoukankan      html  css  js  c++  java
  • 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;
    };
  • 相关阅读:
    2017中国大学生程序设计竞赛
    HDU 1426 Sudoku Killer【DFS 数独】
    Silver Cow Party---poj3268(最短路,迪杰斯特拉)
    Heavy Transportation---poj1797
    Cow Contest---poj3660
    Frogger--poj2253
    最短路基础
    打字母小游戏
    蔡勒(Zeller)公式--黑色星期五
    2的次幂表示
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/10927930.html
Copyright © 2011-2022 走看看