zoukankan      html  css  js  c++  java
  • js实现最长子串算法

    var arr=["weeweadbshow","jhsaasrbgddbshow","ccbshow"];
    function Longest(Arr){

    //字符串长度排序,优先选择最短的字符串,尽可能的减少性能开支
    Arr=String_ArraySort(Arr);
    var wholeArr=[]  //最短字符串所能产生的所有子串
            ,fristStr=Arr.shift()  // 以最短子串为基准
            , count=0   //结果长度
            ,result=""; //结果

    //截取子串
    for (var i=0;i<fristStr.length;i++) {
         for (var j=i+1;j<=fristStr.length;j++) {
             wholeArr.push(fristStr.substring(i,j));
         }
    }

    //遍历所有的子串
    for (var i=0;i<wholeArr.length;i++) {
          var AllArray=[];  //建立一个结果过渡数组

          //使用正则表达式来检索其他的字符串
          var patt=new RegExp(wholeArr[i]);
           for (var j=0;j<Arr.length;j++) {
              var reArr=Arr[j].match(patt);  //使用正则表达式来检索,match函数直接返回结果
                  if (reArr) {   //如果没检索到,返回一个false值,如果匹配到就返回结果
                         AllArray=AllArray.concat(reArr);   //向结果过渡函数添加值
                    } 
           }
          if (AllArray.length==Arr.length) { //验证是否在其他字符串中是否都匹配到了子串

               if (AllArray[0].length>count) {

                   // 过渡结果
                    count=AllArray[0].length;
                    result=AllArray[0];
                }
           }
    }
    return result;
    }
    function String_ArraySort(Arr){
           return Arr.sort(function(str1,str2){
                  return str1.length-str2.length;
       })
    }
    console.log(Longest(arr));
    </script>

  • 相关阅读:
    MySQL 性能调优之索引
    MySQL 性能调优之存储引擎
    MySQL数据类型优化—整数类型优化选择
    MySQL数据性能优化-修改方法与步骤
    MySQL设计SQL语句优化规范
    MySQL索引的设计、使用和优化
    MySQL的SQL语句优化-group by语句的优化
    SQL性能优化-order by语句的优化
    MySQL查询优化注意下面的四个细节
    优化MySQL性能的几种方法-总结
  • 原文地址:https://www.cnblogs.com/laiso/p/8597621.html
Copyright © 2011-2022 走看看