• PAT 乙级 1042 字符统计(20) C++版


    1042. 字符统计(20)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    请编写程序,找出一段给定文字中出现最频繁的那个英文字母。

    输入格式:

    输入在一行中给出一个长度不超过1000的字符串。字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内)。

    输出格式:

    在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。

    输入样例:
    This is a simple TEST.  There ARE numbers and other symbols 1&2&3...........
    
    输出样例:
    e 7


    思路:申请一个容器,只将字母以大写形式存入容器,然后进行排序,再计算效率比一次次遍历容器较高

     1 // 1042.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include<iostream>
     6 #include<string>
     7 #include<vector>
     8 #include <algorithm> 
     9 #include<cctype>
    10 
    11 using namespace std;
    12 
    13 int main()
    14 {
    15     int max = 0,sum=0;
    16     string str;
    17     char c,d;
    18     vector<char> v;
    19 
    20     getline(cin, str);
    21     
    22     //只将字母存入数组中,且将大写转换为小写
    23     for (int i = 0; str[i] != ''; i++)
    24         if (isalpha(str[i]))//仅为字母才进入容器中
    25             v.push_back(tolower(str[i]));//将大写转换为小写
    26 
    27     sort(v.begin(),v.end());//将所有字母进行排序
    28 
    29     vector<char>::iterator i, end = v.end();
    30 
    31     for (i = v.begin(), d = c = *i; i != end; d=*i,i++)
    32     {
    33         //当前元素与前一个元素不同时为真
    34         if (d != (*i))
    35         {
    36             if (sum > max)
    37             {
    38                 c = d;
    39                 max = sum;
    40             }
    41 
    42             sum = 0;
    43         }
    44 
    45         sum++;
    46     }
    47     
    48     //如果所有的字母只有一种
    49     if (d == *(v.begin()))
    50         cout << *(v.begin()) << " " << sum;
    51     else
    52         cout << c << " " << max;
    53 
    54     return 0;
    55 }
  • 相关阅读:
    el-select remote 远程搜索 多个共享一个options,options改变时输入框值不显示名称的问题
    vue 中数据共享的方式
    关于AI本质的思考
    人工智能——一场精妙的商业炒作
    相关下载链接
    只用两个问题通关《极限挑战皇家宝藏》最后一关
    常见图片格式详解
    改写《python基础教程》中的一个例子
    介绍四款windows下的神器
    实现windows批处理下的计时功能
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/7136946.html
Copyright © 2020-2023  润新知