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

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

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
       1 //s是模式字符串,t是匹配字符串(可以看我上一篇文章中的敘述)
       2 int KMP(const char * s , const char * t)
       3 {
       4     int slen = strlen(s) , tlen = strlen(t);
       5     int i = 0 , j = 0;
       6     int *next = ( int * )malloc( sizeof( int ) * slen );
       7     GetNextVal( s , next); //生成部分匹配值的函數(shù)
       8     while( i < slen && j < tlen )
       9     {
      10         if(s[i] == t[j])
      11         {
      12             i++;
      13             j++;
      14         }
      15         else
      16             if(i == 0)
      17             {
      18                  j = j + 1;//如果第一個(gè)字符都不匹配,就直接移一位
      19             }
      20             else
      21             {
      22   //按照上一篇文章中寫的,移動(dòng)步數(shù) = 已匹配字符 - 匹配值
      23   //算式應(yīng)該是:j = ( j - i )+ ( i - next[i-1] ) ;(j - i )為首字符所在的位置
      24   //化簡(jiǎn)后為:j = j - next[i-1]; 再將匹配字符串的索引歸0; i = 0;
      25   //但我們發(fā)現(xiàn),對(duì)于之前已經(jīng)匹配的字符我們又重新比較了一次,
      26   //所以進(jìn)行修正,j的值不變,移動(dòng)匹配字符串,即 i = next[i-1]; 
      27 
      28                  i = next[i-1];            
      29             }
      30     }
      free( next );
      31 if( i == slen ) //說(shuō)明匹配成功 32 return j - slen; //返回目標(biāo)字符串中匹配字符串的位置 33 else 34 return -1; //表示匹配失敗 35 }

      首先是KMP算法的主體,可能存在一定的代碼冗余,但是是完全按照我上篇文章所寫的內(nèi)容寫的,可能和網(wǎng)上的代碼不太一樣,但更好理解。下面插入生成部分匹配值的函數(shù)。

       1 void * GetNextVal( const char *s , int *temp )
       2 {
       3     int i = 0 , j = 0;
       4
       5     temp[0] = 0;
       6     
       7     while( i < len)
       8     { 
       9         i++;
      10         if ( s[i] == s[j] )
      11         {
      12             j++;
      13             temp[i] = j;
      14         }
      15         else
      16         {
      17              j = 0;
      18              if ( s[i] == s[j] )
      19              {
      20                  j++;
      21                  temp[i] == j;
      22              }
      23              else
      24              {
      25                  temp[i] == j;
      26              }
      27         }
      28     }    
      29 }

      這個(gè)函數(shù)代碼冗余量有點(diǎn)多,需要改進(jìn),但目前沒(méi)有想到修改方法。

       

      posted on 2018-03-16 16:19  菠蘿有點(diǎn)甜  閱讀(276)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 少妇真人直播免费视频| 免费无码av片在线观看播放| 国产成人精品午夜福利| 亚洲综合色区另类av| 一本久道久久综合中文字幕| 久久国产福利播放| 白朗县| 奶头好大揉着好爽视频| 日韩熟妇中文色在线视频| 日韩av一区二区三区不卡| 99精品人妻少妇一区| 亚洲无线码一区二区三区| 国产精品无码一区二区桃花视频| 秋霞电影网| 国产午夜福利片在线观看| 2021国产在线视频| 久久精品中文字幕少妇| 色老99久久九九爱精品| 全球成人中文在线| 国产综合久久久久久鬼色| 日韩av一区二区不卡在线| 国产国拍精品av在线观看| 成人3D动漫一区二区三区| 一个色综合国产色综合| 国产免费AV片在线看| 亚洲人成网站在线播放2019| 日韩亚洲国产激情一区二区| 精品无码国产不卡在线观看| 性欧美三级在线观看| 亚洲夜夜欢一区二区三区| 色欲久久久天天天综合网精品 | 欧美国产日韩久久mv| 亚洲肥熟女一区二区三区| 四虎国产精品成人免费久久| 人妻少妇偷人无码视频| 亚洲av熟女国产一二三| 色伦专区97中文字幕| 人与禽交av在线播放| 精品亚洲国产成人av在线| 99热久久这里只有精品| 苍井空一区二区三区在线观看|