本文主要是介绍信息学奥赛一本通1187:统计字符数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1187:统计字符数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 28160 通过数: 16067
【题目描述】
给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。
【输入】
输入包含一行,一个字符串,长度不超过1000。
【输出】
输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符。
【输入样例】
abbccc
【输出样例】
c 3
思路:
这道题很简单啊
首先读入字符串
然后遍历字符串的每一个字符
然后定义一个数组,用来存储每个字符的出现个数
最后找出数组中数字最大的字符,输出来
代码:
#include <bits/stdc++.h>
using namespace std;
int b[28];//用b来存储个数
int main() {string a;getline(cin, a);//读入 int maxa = -1;//maxa记录最大的数 char max;//用来记录输出的字母 for (int i = 0; i < a.size(); i++) {b[a[i] - 97]++;//a[i]-97=第几个字母 }for (int i = 0; i < 26; i++) {if (maxa < b[i]) {//如果找到比maxa大的数 maxa = b[i];//读入 max = char(i + 97);//max记录字母 }}cout << max << " " << maxa;//输出 return 0;
}
这篇关于信息学奥赛一本通1187:统计字符数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!