zoukankan      html  css  js  c++  java
  • JavaScript算法----给定一个长度为N的串,求最长回文子串。

    /*
    *给定一个长度为N的串,求最长回文子串。
    */
     
    function returnStr(str){
        console.log(str);
        var arr = [],s = "";
        for(var i=0;i<str.length;i++){
            s = "";
            if(str.charAt(i)==str.charAt(i+1)){
                var j=0;
                while(str.charAt(i+j+1)==str.charAt(i-j)){
                    s = str.charAt(i-j) + s + str.charAt(i+j+1);
                    j++;
                }
                arr.push(s);
                 
            }else if(str.charAt(i-1)==str.charAt(i+1)){
                var m=1;
                s = str.charAt(i);
                while(str.charAt(i+m)==str.charAt(i-m)){
                    s = str.charAt(i-m) + s + str.charAt(i+m);
                    m++;
                }
                arr.push(s);
            }
             
        }
        //等到所有回文字符串的数组;然后取值的最长
        var l =0 ;k = "";
        arr.forEach(function(val,key){
            if(val.length>l){
                l = val.length;
                k = val;
            }
        });
         
        return "所有回文字符串的集合是:"+arr+",最长的回文字符串的长度是:"+l+",内容是:"+k;
         
    }
    console.log(returnStr("adbdabccbalkj123321jkasdfaswtweypoiuiopsdf"));

    引自http://www.nowcoder.com/questionTerminal/d91641c6489a4aeab390e729c3c883d0

  • 相关阅读:
    130被围绕的区域
    695岛屿的最大面积
    200岛屿数量
    5314跳跃游戏IV
    375猜数字大小II
    464我能赢吗
    486预测赢家
    877石子游戏
    1000合并石头的最低成本
    5329数组大小减半
  • 原文地址:https://www.cnblogs.com/Decmber/p/4743769.html
Copyright © 2011-2022 走看看