• ACM_统计字符串


    统计字符串

    Time Limit: 2000/1000ms (Java/Others)

    Problem Description:

    给定n个字符串,统计字符串的个数。
    如给定
    5
    sss
    ab
    sss
    abcd
    ab
    统计后的结果就是
    ab 2
    abcd 1
    sss 2

    Input:

    输入包含多组测试数据,每组数据首先给定一个整数n(1<=n<=1000).接下来有n个长度不超过10的字符串只包含大小写字母。

    Output:

    对于每组数据,输出字符串的统计结果,按字典序的方式给出结果,见样例。

    Sample Input:

    3
    abc
    cde
    abc
    

    Sample Output:

    abc 2
    cde 1
    解题思路:水题!!!每输入一个字符串就查看之前有没有重复的,有的话,对应的计数器加1,否则就加入到结构体数组中去,最后按字典序排序即可,水过!
    AC代码:
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 struct NODE{
     4     int num;
     5     string str;
     6 }node[1005];
     7 bool cmp(NODE x,NODE y){return x.str<y.str;}
     8 int main()
     9 {
    10     int n,k;string obj;bool flag;
    11     while(cin>>n){
    12         getchar();k=-1;
    13         for(int i=0;i<n;++i)node[i].num=0;
    14         while(n--){
    15             cin>>obj;flag=false;
    16             for(int i=0;i<=k;++i){
    17                 if(node[i].str==obj){
    18                     node[i].num++;flag=true;break;//表示有重复字符串
    19                 }
    20             }
    21             if(!flag){node[++k].str=obj;node[k].num++;}//如果没有重复的话,加入结构体数组中去
    22         }
    23         sort(node,node+k+1,cmp);//按字典序排序
    24         for(int i=0;i<=k;++i)
    25             cout<<node[i].str<<' '<<node[i].num<<endl;
    26     }
    27     return 0;
    28 }
  • 相关阅读:
    Installutil.exe的位置和路径
    .net服务安装(转载)
    移动程序云测试中心
    如何通过web地址直接调用webservices
    VC++引用类型与指针类型
    Android模拟 HTTP multipart/formdata 请求协议信息实现图片上传
    firefox看网页的插件
    DOS下输入汉字
    电脑APK
    HDOJ 1071(球泡无线和直线区域内的面积)
  • 原文地址:https://www.cnblogs.com/acgoto/p/9033046.html
Copyright © 2020-2023  润新知