3048. 单词出现次数

有境界自成高格

有一份简短的代码仅供参考~(谦虚谦虚)
方法很巧,希望能对大家有所帮助~(嘻嘻嘚瑟一下)

include

using namespace std;
int main(void)
{
int n;
cin>>n;
for(int i=0;i>w;
s=’ ‘+s+’ ‘;
w=’ ‘+w+’ ‘;
int p=s.find(w);
while(p!=string::npos){
cnt++;
p=s.find(w,p+1);
}
printf(“case #%d:\n%d\n”,i,cnt);
}
return 0;
}

clysto

字符串的题好像Python3好做一点

T = int(input())

for i in range(T):
    s = input()
    t = input()
    words = s.split(' ')    
    print(f'case #{i}:')
    print(words.count(t))
Mr.wu_

strtok了解一下

改个名字吧

不知道发生了什么 我把我写的和楼上的代码都提交了一下 都wa 怀疑题目出问题了

改个名字吧

好了 修复了

10175102262 LarsPendragon

这题难度也没有5.9EMB这么高啊?甚至因为数据量不大,没有经过优化的分词就可以解决这道题。附C代码:

#include <stdio.h>
#include <string.h>
int main()
{
    char all[150], rep[15], word[100][50];
    int T, I;
    scanf("%d\n",&T);
    for(I=0; I<T; I++)
    {
        int i, cnt=0, j=0, ans=0;
        gets(all);
        scanf("%s",rep);
        getchar();
        int l=strlen(all);
        for(i=0; i<l; i++)
        {
            if(all[i]==' ')
            {
                word[cnt++][j]='\0';
                j=0;
            }
            else word[cnt][j++]=all[i];
        }
        word[cnt++][j]='\0';
        for(i=0; i<cnt; i++)
            if(!strcmp(word[i], rep))
                ans++;
        printf("case #%d:\n%d\n",I, ans);
    }
    return 0;
}
Li Dao

这题按题意是不能直接find的,要以单词出现,另外,getline或者fgets和cin或者scanf混用是个大坑,不多说了

include

using namespace std;
int T;
string big,small;

void solve()
{
getline(cin,big);
getline(cin,big);
cin>>small;

int cnt=0;
stringstream ss(big);
string tmp;
while(ss>>tmp)
if(tmp==small) cnt++;

cout<<cnt<<endl;
return;
}

int main()
{
scanf(“%d”,&T);
for(int step=0;step<T;step++)
{
printf(“case #%d:\n”,step);
solve();
}
return 0;
}

你当前正在回复 博客/题目
存在问题!