PAT 乙级 1042 字符统计

一,问题描述

二,问题分析

1.统计出现最多字符的个数,最简单的思路就是对整个字符串遍历,用一个整型数组进行统计出现次数

2.统计时不区分大小写,所以大小的字母要统计到小写字母上

3.ASCII码中 大写字母65到90    小写字母为大写字母对应加32

4.最后遍历数组,找出最大值,其下标对应的ASCII码就是出现出现次数最多的字符

三,代码解答

#include<iostream>
#include<string>
using namespace std;
string str;
int arr[123];
int main() {
	getline(cin, str);								//string接受空格输入 
	for (int i = 0; i < str.size(); i++) {
		if (int(str[i]) >= 65 && int(str[i]) < 91) {			//如果是大写字母
			arr[int(str[i]) + 32]++;							//统计时按小写字母算
		}
		else if ((int(str[i]) >= 97) &&( int(str[i]) < 123)) {
			arr[int(str[i])]++;
		}
	}
	int max = 0;
	int maxIndex;
	for (int i = 97; i < 123; i++) {			//找出统计数组中的最大值和对应下标
		if (arr[i] > max) {
			max = arr[i];
			maxIndex = i;
		}
	}
	cout << char(maxIndex) << " " << max;
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章