<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      KMP算法的JavaScript實現

        剛才看到新聞頻道轉截的一篇文章:阮一峰:字符串匹配的KMP算法,圖文并茂通俗易懂,就用JS實現了一下,現分享出來。

        算法的核心是部分匹配表和回退算法,部分匹配表的實現如下:

      function kmpGetStrPartMatchValue(str) {
          var prefix = [];
          var suffix = [];
          var partMatch = [];
          for(var i=0,j=str.length;i<j;i++){
              var newStr = str.substring(0,i+1);
              if(newStr.length == 1){
                  partMatch[i] = 0;
              } else {
                  for(var k=0;k<i;k++){
                      prefix[k] = newStr.slice(0,k+1);
                      suffix[k] = newStr.slice(-k-1);
                      if(prefix[k] == suffix[k]){
                          partMatch[i] = prefix[k].length;
                      }
                  }
                  if(!partMatch[i]){
                      partMatch[i] = 0;
                  }
              }
          }
          prefix.length = 0;
          suffix.length = 0;
          return partMatch;
      }
      
      //demo
      var t="ABCDABD";
      console.log(kmpGetStrPartMatchValue(t));
      //output:[0,0,0,0,1,2,0]

        回退算法實現如下:

      function KMP(sourceStr,targetStr){
          var partMatchValue = kmpGetStrPartMatchValue(targetStr);
          var result = false;
          for(var i=0,j=sourceStr.length;i<j;i++){
              for(var m=0,n=targetStr.length;m<n;m++){
                  if(str.charAt(m) == sourceStr.charAt(i)){
                      if(m == targetStr.length-1){
                          result = true;
                          break;
                      } else {
                          i++;
                      }
                  } else {
                      if(m>0 && partMatchValue[m-1] > 0){
                          m = partMatchValue[m-1]-1;
                      } else {
                          break;
                      }
                  }
              }
              if(result){
                  break;
              }
          }
          return result;
      }
      var s = "BBC ABCDAB ABCDABCDABDE";
      var t = "ABCDABD";
      console.log(KMP(s,t));
      //output: true

        歡迎交流討論。

      posted @ 2013-05-02 12:59  artwl  閱讀(1987)  評論(2)    收藏  舉報

      個人簡介

      var ME = {
      	"name": "土豆/Artwl",
      	"job": "coding",
      	"languages": [
      		"JS", "HTML",
                      "CSS", "jQuery"
      		"MVC",".NET",
      		"設計模式"
      	],
      	"hobby": [
      		"閱讀", "旅游",
      		"音樂", "電影"
      	]
      }
      
      TOP
      主站蜘蛛池模板: 久久久久久久波多野结衣高潮| 中文字幕亚洲男人的天堂| 国产一区二区亚洲精品| 亚洲成亚洲成网中文字幕| 日韩有码精品中文字幕| 欧美不卡无线在线一二三区观| 一卡2卡三卡4卡免费网站| 国产熟女肥臀精品国产馆乱| 欧美日韩精品一区二区三区高清视频 | 一级做a爰片在线播放| 日韩一区二区三区日韩精品| 老司机午夜精品视频资源| 久久中文字幕日韩无码视频| 国产精品成人一区二区不卡| 欧美成人黄在线观看| 精品久久久久无码| 国产二区三区不卡免费 | 国产精品无码a∨麻豆| 天堂av在线一区二区| 欧美亚洲高清日韩成人| 男女爽爽无遮挡午夜视频 | 国产免费久久精品44| 影音先锋在线资源无码| 日韩国产精品区一区二区| 在线播放亚洲成人av| 小嫩批日出水无码视频免费 | 日韩av在线一卡二卡三卡| 无码人妻aⅴ一区二区三区蜜桃| 亚洲高清WWW色好看美女| 九九热在线免费视频观看| 日本中文一区二区三区亚洲| 亚洲成人精品综合在线| 在线欧美精品一区二区三区| 久久99精品久久久久久| 色综合色综合色综合频道| 亚洲中文字幕精品无人区| 一本精品中文字幕在线| 五月天天天综合精品无码| 国产suv精品一区二区883| 亚洲一二三四区中文字幕| 亚洲精品麻豆一二三区|