• 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;
    };
  • 相关阅读:
    ms08-067
    siem主流厂商
    技术设计
    SOC
    通过 IDE 向 Storm 集群远程提交 topology
    Storm
    java线程中Exchanger使用
    android笔记
    学习笔记 Java类的封装、继承和多态 2014.7.10
    POJ 2533 Longest Ordered Subsequence DP
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/10927930.html
Copyright © 2020-2023  润新知