乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      KMP算法

       ShangShujie 2007-05-16
      KMP算法
      2007-05-07 19:12

      原創(chuàng)作品,作者:飛陽。轉(zhuǎn)載請注明出處,謝謝。
      http://hi.baidu.com/burtcn

      很著名的文本匹配的算法,據(jù)說華為公司的筆試題目曾經(jīng)出過這道
      今天終于搞明白了。。別小看這很短的代碼。。

      文本匹配的算法還有個(gè)BM算法,據(jù)說是比KMP算法還是高效
      我感覺下面的代碼還算是比較簡單易懂的KMP算法。。

      #include <stdio.h>
      #include <string.h>
      void setNext(char pattern[],int next[],int size){          
                  int j;
                  next[0]=-1;
                  for(int i=1;i<size;i++){                    
                            for(j=next[i-1];j>=0&&pattern[i]!=pattern[j+1];j=next[j]);                    
                            next[i]=(j<0&&pattern[i]!=pattern[j+1])?-1:j+1;
                  }
      }
      int match(char source[],char pattern[]){          
                  int psize=strlen(pattern);          
                  int *next=new int[psize];
                  setNext(pattern,next,psize);          
                  int i,j;
                  int size=strlen(source);
                  for(i=0,j=0;i<size;){                    
                            if(source[i]!=pattern[j]){                              
                                      if(j>0){                                        
                                                j=next[j-1]+1;
                                      }else
                                                i++;
                            }else
                                      i++,j++;
                            if(j>=psize) break;
                  }          
                  return j>=psize?i-psize:-1;
      }
      int main(){          
                  char *source="ababababeababcabdaf";
                  char *pattern="ababc";
                  printf("%d\n",match(source,pattern));          
                  return 0;
      }

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多