问题标题: 酷町堂:请问1468 指定单词词频统计怎么做???

0
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
我要回答