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;
}

Mr.wu_

strtok了解一下

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))
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;
}

Gattuso

划重点,cin.ignore()

include

include

include

include

using namespace std;

int main(){
int T;
cin>>T;
vector num;
for(int i=0;i vec; string key; cin.ignore(); getline(cin,key); istringstream lines(key); while(lines>>key) vec.push_back(key);
int cnt=0;
cin>>key;
for(int j=0;j<vec.size();j++) if(vec[j]==key) cnt++;
num.push_back(cnt);
}
for(int i=0;i<T;i++){
cout<<”case #”<<i<<”:”<<endl;
cout<<num[i]<<endl;
}
return 0;
}

RRRRaft

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
sc.nextLine();
int time = 0;
while(T>0) {
int num = 0;
String s = sc.nextLine();
String[] split = s.split(” “);
String model = sc.nextLine();
for (int j = 0; j < split.length; j++) {
if (split[j].equals(model)) {
num++;
}
}
System.out.println(“case #” + (time++) + “:”);
System.out.println(num);

        T--;
    }
}

}

改个名字吧

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

改个名字吧

好了 修复了

会奔跑的bug

for n in range(int(input())):
print(‘case #’ + str(n) + ‘:’)
all_s = input().split(‘ ‘)
target_s = input()
print(all_s.count(target_s))

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;
}
你当前正在回复 博客/题目
存在问题!