虽然题目这么写,也没有多少技巧啦,主要就是刷这道题的时候
1071 Speech Patterns (25分)
就是,can在这句话中出现了5次,是出现次数最多的,所以输出了:can 5。统计出现次数时,大小写不敏感。
两个函数
1.isalnum()函数,头文件是#include<cctype>,它的意义是:判断一个字符是否为数字或字母,是就返回非零值,否就返回零。
2.tolower()函数, 头文件同样是#include<cctype>它的意义是:将字母字符转换成小写,非字母字符不做出处理。
3.toupper()函数 ,同2,是将字母字符转换成大写,非字母字符不作出处理。
最后是这道题的代码
#include<bits/stdc++.h>
using namespace std;
string str,t="";
map<string,int>mp;
int main() {
getline(cin,str);
int length=str.length();
for(int i=0; i<length; i++) {
if(isalnum(str[i])) {
str[i]=tolower(str[i]);
t+=str[i];
}
if(!isalnum(str[i])||i==length-1) {
if(t.length()!=0)
mp[t]++;
t="";
}
}
string ans="";
int maxlength=0;
for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++){
if(it->second>maxlength){
maxlength=it->second;
ans=it->first;
} else if(it->second==maxlength){
if(it->first<ans) ans=it->first;
}
}
cout<<ans<<" "<<maxlength<<endl;
return 0;
}