1187:统计字符数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 2217 通过数: 1231
【题目描述】
给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。
【输入】
输入包含一行,一个字符串,长度不超过1000。
【输出】
输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符。
【输入样例】
abbccc
【输出样例】
c 3
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
char a[2000];//定义一个字符数组
int n ; //等下用来获取字符串的长度
char maxzifu ;//用来记录出现次数最多的字符
int maxcishu = 0 ; //maxcishu用于记录出现次数最多的字母次数
int t = 1 ; //t是计数器(姬)
cin >> a ;
// 输入包含一行,一个字符串,长度不超过1000。
n=strlen( a ) ;
//strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。
//返回字符串s 的字符数。
sort( a , a+n );
//将字母进行排序
for( int i = 0 ; i < n ; i++ )//循环 一直到字符串的第n位
{
if(a[ i ] == a[ i + 1 ])
//相同的字母出现了!!!
{
t ++ ;//计数姬++!
}
else
{
if( maxcishu < t )
//出现次数最多的字母次数 < 计数姬记录的
{
maxzifu = a[i] ; //出现次数最多的字符
maxcishu = t; // 需要更新哦
}
t = 1;
}
}
cout << maxzifu << " " << maxcishu <<endl ;
//输出一行,包括出现次数最多的字符和该字符出现的次数,
//中间以一个空格分开。如果有多个字符出现的次数相同且最多,
//那么输出ascii码最小的那一个字符。
return 0 ;
}
定义的东西太多很容易乱
所以我有些时候会这样↓