写了个不错的回到字符串子串在母串中出现次数的.

写了个不错的返回字符串子串在母串中出现次数的...
有兴趣的朋友可以试下
C/C++ code

unsigned int CountSubstringTimes(char * subs,char *s)
{
    static unsigned int ls =strlen(subs),
        l =strlen(s);
    static unsigned int time =0;
    if(ls > l)
        return time;
    if(s[0])
    {
        if(subs[0])
        {
            if(subs[0]!=s[0])
                return CountSubstringTimes(subs,s+1);
            else
            {
                return CountSubstringTimes(subs+1,s+1);
            }
        }
        else
        {
            time ++;
            return CountSubstringTimes(subs-ls,s);
        }
    }
    else
    {
        if(!subs[0])
            time++;
        return time;
    }
}


cout<<CountSubstringTimes("do","idoidoidodoidoloveyouanddoyoudoyoudodoyoulovemetoo");



------解决方案--------------------
不错,就是用递归效率降低了
------解决方案--------------------
请问楼主“xxxx”里面到底有几个“xx”?
------解决方案--------------------
探讨

请问楼主“xxxx”里面到底有几个“xx”?

------解决方案--------------------
感觉把倒数第二个else里的return CountSubstringTimes(subs-ls,s);
改成return CountSubstringTimes(subs-ls,s-ls+1);
也可以吧
------解决方案--------------------
边界条件怎样?

------解决方案--------------------
探讨
引用:

感觉把倒数第二个else里的return CountSubstringTimes(subs-ls,s);
改成return CountSubstringTimes(subs-ls,s-ls+1);
也可以吧

那样不可以吧 改变了主串的第一个紧接着的搜索位置