当前位置:编程学习 > C/C++ >>

串的模式匹配——Brute-Force算法

      Brute-Force算法的基本思路为:从目标串s=“s0s1...sn-1”的第一个字符开始和模式串t=“t0t1t2...tn-1”中的第一个字符比较,若相等,则继续逐个比较后续字符;
 
否则从目标串的第二个字符开始重新与模式串t的第一个字符比较。以此类推,若模式串s的第i个字符开始,每个字符依次和目标串t中的对应字符相等,则匹配成功,返回i,否则
 
匹配失败,算法返回-1。
 
int index (SqString s,SqString t)  
{  
    int i=0,j=0;  
    while(i<s.length&&j<t.length)  
    {  
  
        if(s.data[i]==t.data[j])  
        {  
            i++;  
            j++;  
        }  
        else  
        {  
            i=i-j+1;  
            j=0;  
        }  
    }  
    if(j>=t.length)  
        return (i-t.length);  
    else  
        return -1;  
      
}  

 


补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,