一、技术总结

  1. 开始拿到这道题目时,思考的是我该如何区分它们每一个单词,不知道这里还是要学习得知在cctype头文件中有一个函数用于查看是否为0~9、a~z、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;
}
01-01 12:08