Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

字符串查找

高中我们都学过蛋白质的合成,就像这个,是不是又想起被生物支配的恐惧了。而KMP和这个类似。他们都采用向前推进的方式来查找是不是这个“碱基对”相互匹配。

假定被查找的字符串为P[i],需查找的字符串为S[j]。直接上图
最开始的是他们是这样的在这里插入图片描述
由于他们首字符不匹配,所以只进行i++。
在这里插入图片描述直到他们找到首字符得以匹配。这时让被查找字符串P[i]和S[i]字符串同时向前推进,判断他们接下来是否字符匹配

在这里插入图片描述
如果匹配,就接着继续下去在这里插入图片描述
直到遇到不匹配的字符停止

在这里插入图片描述
原理很简单,下面是代码:

int search(char* s, char* p)
{
	int i = 0, j = 0,len=0;
	int sLen = strlen(s);
    while (i < sLen && j < pLen)
    {
        if (s[i] == p[j])
        {
            i++;
            j++;
            len++;
        }
        else
        {

            i++;
        }
        if (len == sLen)
        {
            return (i - sLen);//返回他的首地址(第几个字符)
        }
    }
    return 0;//要是没有就返回0
 };

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 免费资源分享(二) Unity3D 写实梦幻大场景

下一篇: 移动端UI一致性解决方案

精华推荐