laiso

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>

分类:

算法

技术点:

相关文章:

  • 2021-12-13
  • 2019-03-15
  • 2019-12-04
  • 2021-07-24
  • 2021-11-04
  • 2021-03-03
  • 2018-11-24
猜你喜欢
  • 2021-04-09
  • 2021-04-01
  • 2021-08-08
  • 2021-10-16
  • 2021-06-03
  • 2022-01-17
  • 2021-04-10
相关资源
相似解决方案