1 原始的笨方法
思路:一个接一个的进行匹配
//时间复杂度:预处理时间(0) + 匹配时间 O((n-m+1)m) = O((n-m+1)m) 空间复杂度 O(n+m+5)
void NativeMatchStr( char *src,char *dest )
{
assert(src!=NULL&&dest!=NULL);
int len1,len2;
len1=strlen(src);
len2=strlen(dest);
for(int i=0;i<len1;i++)
{
for(int j=0;j<len2;j++)
{
if(src[i+j]!=dest[j]) // 1 比较
{
break; //只是推出 内层循环
}
if(j==len2-1) //2 判断
{
//i+len2-1=i+j : 两种情况--对应两个处理方式printf以及 return
printf("The location is %d--%d\n",i,i+j);
return;
}
}
}
printf("I cannot find the match.\n");
}
========================================================
测试代码:
int main()
{
char *str1="abcdefgh";
char *str2="def";
char *str3="disig";
NativeMatchStr(str1,str2);
NativeMatchStr(str1,str3);
return 0;
}
2 KMP算法
搞不太明白了,还是没有能够静下心来。以后再说吧,这里有两篇参考的可以看看
六之再续:KMP算法之总结篇(12.09修订,必懂KMP):http://blog.csdn.net/v_july_v/article/details/7041827
KMP算法详解:http://www.matrix67.com/blog/archives/115
KMP快速字符串查找算法:http://www.nowamagic.net/algorithm/algorithm_KmpFastStringSearch.php
嗨,不知道怎么搞的,随便修改了一下就标记为 已删除 的标志了,都整到垃圾箱了。看看这次能整好不,不会是每一次 修改和编辑都要删除吧???
字符串匹配
原创hahanihao101 博主文章分类:面试 ©著作权
©著作权归作者所有:来自51CTO博客作者hahanihao101的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章