gpt4 book ai didi

C程序计算模式字符串的出现次数

转载 作者:行者123 更新时间:2023-11-30 20:24:55 26 4
gpt4 key购买 nike

给定源字符串S和模式字符串P,计算模式字符串P在源字符串S中出现的次数。

输入格式:第一行是源字符串 S s.t。 1 <= |S| <= 8192 个字符第二行是模式字符串 P st。 1 <= |P| <= 8192 个字符

输出格式:输出一个整数,其中包含模式字符串 P 在源字符串 S 中出现的次数。

这段代码有什么问题吗?

#include<stdio.h>
int main()
{
int i=0,j=0,k=0,loss=0,noss=0;
char ms[8192],ss[8192];
scanf("%s",&ms);
scanf("%s",&ss);
while(ss[loss]!='\0')
{
loss=loss+1;

}
while(ms[i]!='\0')
{
j=0;
if(ms[i]==ss[0])
{
j=j+1;
k=i+1;
while(ss[j]!='\0')
{
if(ms[k]==ss[j])
j++;
else
break;
}
if(j==loss-1)noss++;
}
i++;
}
printf("%d",noss);
return(0);

}

测试用例 1

输入:密西西比州 伊西

预期输出:2

实际输出:2

测试用例 2

输入:瓦加杜古 欧

预期输出:3

实际输出:0

最佳答案

顺便说一句,只是为了答案,试试这个。查看第 25-28 行和第 32 行的区别。

 18        if(ms[i]==ss[0])
19 {
20 j=j+1;
21 k=i+1;
22 while(ss[j]!='\0')
23 {
24 if(ms[k]==ss[j])
25 {
26 j++;
27 k++;
28 }
29 else
30 break;
31 }
32 if(j==loss)noss++;
33 }

关于C程序计算模式字符串的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com