i-j+1是精髓

前端之家收集整理的这篇文章主要介绍了i-j+1是精髓前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
int ViolentMatch(char* s,char* p)  
{  
    int sLen = strlen(s);  
    int pLen = strlen(p);  
int i = 0;  
int j = 0;  
while (i < sLen &amp;&amp; j < pLen)  
{  
    if (s[i] == p[j])  
    {  
        //①如果当前字符匹配成功(即S[i] == P[j]),则i++,j++      
        i++;  
        j++;  
    }  
    else  
    {  
        //②如果失配(即S[i]! = P[j]),令i = i - (j - 1),j = 0      
        i = i - j + 1;  
        j = 0;  
    }  
}  
//匹配成功,返回模式串p在文本串s中的位置,否则返回-1  
if (j == pLen)  
    return i - j;  
else  
    return -1;  

}

猜你在找的程序笔记相关文章