1042.字符统计


在提交时有一个点没有过去,后来读题发现自己忽略了细节“如果有并列,则输出按字母序最小的那个字母。”,所以在循环里加一次判断并列的条件。


#include <iostream>
using namespace std;

int main() {
	string s;
	getline(cin, s);
	int a[100001] = {0};
	int max = 0;
	char b;
	for(int i = 0; i < s.length(); i++) {
		if(s[i] >= 'A' && s[i] <= 'Z') {
			s[i] = s[i] + 32;
		}
		if(s[i] >= 'a' && s[i] <= 'z') {
			a[s[i] - '0']++;
			if(a[s[i] - '0'] > max) {
				max = a[s[i] - '0'];
				b = s[i];
			} else if(a[s[i] - '0'] == max) {
				if(b > s[i]) {
					b = s[i];
				}
			}
		}
		
	}
	cout << b << " " << max;
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39227338/article/details/80390527