蓝桥杯1602 出现最多的字符

蓝桥杯1602 出现最多的字符


题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可

下面的矩阵中包含 ABCDEF六种字符,请问出现最多的字符出现了几次?

FFEEFEAAECFFBDBFBCDA
DACDEEDCCFFAFADEFBBA
FDCDDCDBFEFCEDDBFDBE
EFCAAEECEECDCDECADDC
DFAEACECFEADCBFECADF
DFBAAADCFAFFCEADFDDA
EAFAFFDEFECEDEEEDFBD
BFDDFFBCFACECEDCAFAF
EFAFCDBDCCBCCEADADAE
BAFBACACBFCBABFDAFBE
FCFDCFBCEDCEAFBCDBDD
BDEFCAAAACCFFCBBAAEE
CFEFCFDEEDCACDACECFF
BAAAFACDBFFAEFFCCCDB
FADDDBEBCBEEDDECFAFF
CDEAFBCBBCBAEDFDBEBB
BBABBFDECBCEFAABCBCF
FBDBACCFFABEAEBEACBB
DCBCCFADDCACFDEDECCC
BFAFCBFECAACAFBCFBAF
运行限制

最大运行时间:1s
最大运行内存: 256M

题目信息
  • 难度: 简单
  • 标签: 2021, 省模拟赛
  • 传送门

参考题解

c++版:

#include <bits/stdc++.h> //经典万能文件头
using namespace std;
string s="FFEEFEAAECFFBDBFBCDA"//string 类型的多行初始化,相当于写在一行
         "DACDEEDCCFFAFADEFBBA"
         "FDCDDCDBFEFCEDDBFDBE"
         "EFCAAEECEECDCDECADDC"
         "DFAEACECFEADCBFECADF"
         "DFBAAADCFAFFCEADFDDA"
         "EAFAFFDEFECEDEEEDFBD"
         "BFDDFFBCFACECEDCAFAF"
         "EFAFCDBDCCBCCEADADAE"
         "BAFBACACBFCBABFDAFBE"
         "FCFDCFBCEDCEAFBCDBDD"
         "BDEFCAAAACCFFCBBAAEE"
         "CFEFCFDEEDCACDACECFF"
         "BAAAFACDBFFAEFFCCCDB"
         "FADDDBEBCBEEDDECFAFF"
         "CDEAFBCBBCBAEDFDBEBB"
         "BBABBFDECBCEFAABCBCF"
         "FBDBACCFFABEAEBEACBB"
         "DCBCCFADDCACFDEDECCC"
         "BFAFCBFECAACAFBCFBAF";
int ss[200];//根据ascii表的值估计不会范围溢出
int main()
{
  for(char q:s){//range for each用法
    ss[q]++;    //利用了桶的思想,以字母本身的ascii值作为数组下标
    			//数组的值即为字母出现次数
                //这里不需要写成ss[(int)q]++,q会根据ascii表内值自动转换
  }
  cout<<*max_element(ss,ss+200);//数组内求最值的方便函数,参数为起始地址,左闭右开
  return 0;
}

tip:
  1. c++中string类型的多行初始化,效果等同于写在一行
  2. 桶思想的最简单运用来统计字符出现次数
  3. max_element(地址/迭代器,地址/迭代器),经典左开右闭,返回值为地址
    1. 通过*max_elemet直接得到目标元素
    2. 用法2:通过地址/迭代器相减(max_element(a,a+5)-a)得到目标元素下标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值