KMP算法分析
2.next数组求法
操作见课件,这里不赘述
1. s [ i ] ≠ s [ j ] s[i] \neq s[j] s[i]=s[j]

 则
    
     
      
       
        s
       
       
        [
       
       
        i
       
       
        ]
       
      
      
       s[i]
      
     
    s[i] 和 
    
     
      
       
        s
       
       
        [
       
       
        j
       
       
        ]
       
      
      
       s[j]
      
     
    s[j] 无法匹配,所以我们一定无法选择 
    
     
      
       
        s
       
       
        [
       
       
        j
       
       
        ]
       
      
      
       s[j]
      
     
    s[j] 且 
    
     
      
       
        n
       
       
        e
       
       
        x
       
       
        t
       
       
        [
       
       
        i
       
       
        ]
       
       
        =
       
       
        1
       
      
      
       next[i] = 1
      
     
    next[i]=1, 所以最长公共前后缀长度为:一段包含
    
     
      
       
        s
       
       
        [
       
       
        i
       
       
        ]
       
      
      
       s[i]
      
     
    s[i]的区间和一段不包含
    
     
      
       
        s
       
       
        [
       
       
        j
       
       
        ]
       
      
      
       s[j]
      
     
    s[j]的区间,且两区间相同,
    
     
      
       
        n
       
       
        e
       
       
        x
       
       
        t
       
       
        [
       
       
        j
       
       
        ]
       
      
      
       next[j]
      
     
    next[j]表示先将不包含
    
     
      
       
        s
       
       
        [
       
       
        i
       
       
        ]
       
      
      
       s[i]
      
     
    s[i]的区间匹配,在去暴力的判断能不能再加上一个字符
    
     
      
       
        s
       
       
        [
       
       
        i
       
       
        ]
       
      
      
       s[i]
      
     
    s[i]
2. s [ i ] = = s [ j ] s[i] == s[j] s[i]==s[j]
则最长公共前后缀可以向后延展一位,所以直接 i i i++; j j j++;
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号