设为首页 加入收藏

TOP

leetcode――Implement strStr() 实现字符串匹配函数(AC)
2015-07-24 06:28:52 来源: 作者: 【 】 浏览:41
Tags:leetcode Implement strStr 实现 字符串 匹配 函数

Implement strStr().

Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.

这个题考查的是KMP算法,先求特征向量,然后再进行匹配,确实可以大大提高效率。code如下:

class Solution {
public:
    char *strStr(char *haystack, char *needle) {
        if(strlen(haystack)==0&&strlen(needle)==0)
            return haystack;
        if(strlen(haystack)==0&&strlen(needle)!=0)
			return NULL;
		if(strlen(needle)==0)
		    return haystack;
		int m=strlen(needle);
        int *N = new int[m];
		N[0]=0;
		int i,j,k;
		for(i=1;i
  
   0 && needle[i]!=needle[k])
			{
				k=N[k-1];
			}
			if(needle[i]==needle[k])
				N[i]=k+1;
			else
				N[i]=0;
		}
		j=0;
		for(i=0;i
   
    0 && needle[j]!=haystack[i]) j=N[j-1]; if(needle[j]==haystack[i]) j++; if(j==strlen(needle)) return haystack+i-j+1; } return NULL; } };
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇XTU OJ 1207 Welcome to XTCPC (.. 下一篇编程基础知识――C/C++,Java,ObjC..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: