码迷,mamicode.com
首页 > 其他好文 > 详细

Implement strStr[]

时间:2015-02-25 15:35:45      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

这道题是字符串匹配,用的Sunday算法[1],边界条件是模式串和原串为空的情况。

[1] 字符串匹配算法 – Sunday算法 - 如斯夫 - 博客园 http://www.cnblogs.com/lbsong/archive/2012/05/25/2518188.html

代码如下:

class Solution {
public:
    int strStr(char *haystack, char *needle) {

        int i=0,j=0,m=0;
        int l1 = strlen(haystack);
        int l2 = strlen(needle);
        if(l1==0&&l2==0)
            return 0;
        else if(l2==0)
            return 0;
        else if(l1==0)
            return -1;
        int index = -1;
        m = l2;
        while(i<l1)
        {
            if(*(haystack+i)==*(needle+j))
            {
                i++;
                j++;
                if(j==l2)
                {
                    index = i-l2;
                    break;
                }
            }
            else
            {
                j=0;
                i = m;
                for(int k=l2-1;k>=0;k--)
                    if(*(needle+k)==*(haystack+m))
                    {
                       i = m-k;
                       break;
                    }
                m = i + l2;
            }

        }
        return index;
    }
};

 

Implement strStr[]

标签:

原文地址:http://www.cnblogs.com/ZhangYushuang/p/4299630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!