A1071 Speech Patterns (25 分)

一、技术总结

  1. 开始拿到这道题目时,思考的是我该如何区分它们每一个单词,不知道这里还是要学习得知在cctype头文件中有一个函数用于查看是否为09、az、A~Z,就是isalnum(),又因为题目中要求不区分大小写,有一个函数tolower(),toupper()要学会合理利用。
  2. 然后就是使用map技术了,默认初始化为0如果是string,int,可以直接mp[]++;
  3. 然后就是键值和值mp->first,mp->second;

二、参考代码

#include<iostream>
#include<map>
#include<cctype>
using namespace std;
int main(){
	string t, s;
	map<string, int> mp;
	getline(cin, s);
	for(int i = 0; i < s.length(); i++){
		if(isalnum(s[i])){
			s[i] = tolower(s[i]);
			t += s[i];
		}
		if(!isalnum(s[i]) || i == s.length()-1){
			if(t.length() != 0) mp[t]++;
			t = "";
		}
	}
	int maxn = 0;
	for(auto it = mp.begin(); it != mp.end(); it++){
		if(it->second > maxn){
			maxn = it->second;
			t = it->first;
		}
	} 
	cout << t << " " << maxn;
	return 0;
}
posted @ 2019-11-24 20:55  睿晞  阅读(160)  评论(0)    收藏  举报