zoukankan      html  css  js  c++  java
  • KMP算法(蛮力法)

     1 #include<stdlib.h>
     2 #include<stdio.h>
     3 void next(char T[],int nextArr[],int n);
     4 
     5 int match(char S[],int tn,char T[],int sn,int nextArr[]);
     6 
     7 int main(void){
     8     char S[]="adefdfeeeeeeeeeabcdefgabcdefgaeiohxohoalslhoe";
     9     char T[]="abcdefgabcdefg";
    10     int nextArr[14]={0};
    11     int n=14;
    12 
    13     next(T,nextArr,n);
    14 
    15 //    int i=0;
    16 //    for(;i<n;i++){
    17 //        printf("%d ",nextArr[i]);
    18 //    }
    19 
    20     int result = match(S,strlen(S),T,strlen(T),nextArr);
    21     printf("%d",result);
    22 
    23 
    24     return EXIT_SUCCESS;
    25 }
    26 
    27 void next(char T[],int next[],int n){
    28     next[0]=0;
    29     int k=0,j=1;
    30     while(j<n){
    31         if((k==0||T[k]==T[j])){
    32             next[j]=k;
    33             k++;
    34             j++;
    35         }else{
    36             k=next[k];
    37         }
    38     }
    39 }
    40 
    41 int match(char S[],int tn,char T[],int sn,int nextArr[]){
    42     int i=0,j=0;
    43     int result=0;
    44     for(;i<tn-sn+1;i++,j++){
    45         if(S[i]==T[j]){
    46             if(j==sn-1){
    47                 result=1;
    48                 break;
    49             }
    50             continue;
    51         }else{
    52             j=nextArr[j];
    53         }
    54     }
    55     return result;
    56 }
  • 相关阅读:
    ccc pool
    ccc 模拟重力 正太分布
    ccc 正态分布
    ccc this 指针
    基本语法HelloWorld
    css选择器
    css基本语法
    表单
    表格
    超链接
  • 原文地址:https://www.cnblogs.com/mozhuhao/p/4511942.html
Copyright © 2011-2022 走看看