• 单词统计


    链接:https://ac.nowcoder.com/acm/problem/20443
    来源:牛客网

    题目描述

    某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。

    输入描述:

    第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N ≤ 200,单词长度不超过10^6

    输出描述:

    输出N个整数,第i行的数字表示第i个单词在文章中出现了多少次。
    示例1

    输入

     

    输出

     
    我对字符串还是不怎么熟悉,一开始用char折腾半天,后面看到大佬都用的string处理,发现确实好多了。基本上是一个字符匹配算法。
    #include<bits/stdc++.h>
    using namespace std;    
    string s[205];
    int axs(int x,int y)
    {
        string a=s[x],b=s[y];
        int i,j,count,s=0;
        int len1=a.length(),len2=b.length();//a,b串长     
        if(len1>len2)//如果a比b长直接不需要比较了,将没有配对的 
        return 0;
        for(i=0;i<=len2-len1;i++)//len2-len1表示有几次配对机会-1 
        {
            if(a[0]==b[i])//在b中找到与a的首字母匹配的对象再继续进行比较下去 
            {
                count=0;//统计匹配成功次数 
                for(j=0;j<len1;j++)
                {
                    if(a[j]==b[i+j])//暴力匹配 
                        {
                            count++;
                        }
                }
                    if(count==len1)//将a检测完后表示匹配一次 
                {
                    s++;
                }
            }
        }
        return s;
    }
    int main()
    {
        int sum;
        int n;
        cin>>n;
        int i,j;
        for(i=0;i<n;i++)//输入N行数据 
        {
            cin>>s[i];
         }
        for(i=0;i<n;i++)//用第i个分别与第J个进行比较 
        {
            sum=0;
            for(j=0;j<n;j++)
            {
                sum+=axs(i,j);
            }
             cout<<sum<<endl;//当第i个与最后一个j比较完后输出结果 
        }
         
    }
  • 相关阅读:
    我是卡拉 上海国际工业博览会纪实(4)
    GDI+中常见的几个问题(1)
    我是卡拉 上海国际工业博览会纪实(2)
    GDI+中常见的几个问题(9)
    GDI+中常见的几个问题(3)
    我是卡拉 上海国际工业博览会纪实(7)
    贵阳的小吃
    Indigo是啥
    我是卡拉 上海国际工业博览会纪实(3)
    云计算里AWS和Azure的探究(1)
  • 原文地址:https://www.cnblogs.com/Truedragon/p/12316705.html
Copyright © 2020-2023  润新知