题解 | #统计字符串中子串出现的次数#

统计字符串中子串出现的次数

https://www.nowcoder.com/practice/9eb684f845a446f3b121472de2ea75cd

#include <iostream>
#include <cstring>
using namespace std;

int main() {

    char str[100] = { 0 };
    char substr[100] = { 0 };

    cin.getline(str, sizeof(str));
    cin.getline(substr, sizeof(substr));

    int count = 0;

    // write your code here......
    int lenstr=strlen(str);
    int lensub=strlen(substr);
    int i=0,j=0;

    while(i<lensub&&j<lenstr)
    {

            if(str[j]!=substr[i])//
            {
               j=j+1;//如果不能够匹配,str跳到下一个字符
               i=0;//有一个字符匹配不上,子串跳到最开始
            }
            else if(str[j]==substr[i])
            {
                if(i==lensub-1)
                {
                    if(str[j] == substr[0])
                    {
                        i=0;
                        j=j;

                    }
                    else if(str[j] != substr[0]){
                    i=0;
                    j+=1;
                    }
                    count+=1;
                }
                else if(i!=lensub-1){
                    i+=1;
                    j+=1;

                }

            }
        
    }

    cout << count << endl;

    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 11:30
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 14:45
bg是二本双一流硕,目标是Java后端开发岗,投暑期实习0大厂面试,只有极少的大厂测开,可能投的晚加上简历太烂加上0实习?求大佬们给个建议
程序员小白条:别去小厂,初创或者外包,尽量去中小,100-499和500-999,专门做互联网产品的,有公司自研的平台和封装的工具等等,去学习一些业务相关的,比如抽奖,积分兑换,SSO认证,风控,零售等等,目标 Java 后端开发吗?你要不考虑直接走大厂测开?如果技术不行的话,有面试你也很难过的
实习,不懂就问
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务