0
已解决
题目:
1468 指定单词词频统计
题目描述 Description
微软办公软件word想推出新的功能,即对于指定的单词,可以统计在整个字符串中出现的次数,并输出该单词在字符数组中第一次出现是第几个单词(不区分大小写,也就是说“HeLLo”和“hello”算同一个单词),如果该单词没有出现在该字符串中,则输出-1。单词之间用单个空格隔开。
输入描述 Input Description
输入为2行:
第一行为一个字符串,长度不超过500。
第二行为需要统计的单词,长度不超过100。
输出描述 Output Description
输出为一行,如果该单词没有出现在字符串中,则输出-1,如果该单词出现在字符串中,输入该单词第一次出现是第几个单词以及该单词在整个字符串中出现的次数,中间用单个空格隔开。
样例输入 Sample Input
ab AbC def aBc abc def abC
ABc
样例输出 Sample Output
2 4
题目网站:http://judge.codingtang.com/problem/1468/
怎么做??????????????????????
1
已采纳
首先,把输入数据全改成小写,便于判断
其次,循环i到strlen(str)
最后判断用num计数就行
赵毅恒在2018-04-14 13:13:46追加了内容
我现在是手机,
回家核心代码以及判断过程发给你
跪求采纳
0
我只有40分,如下:
#include<bits/stdc++.h>
using namespace std;
int main ()
{
char a[501],b[101];
int len,len2,ans=0,m=0,y=0,k=-1;
gets(a);
gets(b);
len=strlen(a);
len2=strlen(b);
for(int i=0;i<=len-1;i++)
{
if(a[i]>='A'&&a[i]<='Z') a[i]+=32;
}
for(int i=0;i<=len2-1;i++)
{
if(b[i]>='A'&&b[i]<='Z') b[i]+=32;
}
for(int i=0;i<=len-1;i++)
{
if(a[i]==' ') y++;
if(a[i]!=b[m])
m=0;
else if(a[i]==b[m])
{
m++;
}
if(m==len2)
{
if(k==-1) k=y+1;
m=0;
ans++;
}
}
if(ans==0) cout<<"-1"<<endl;
else cout<<k<<' '<<ans<<endl;
}
可供参考
0
