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;
}

 

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