最后一个测试点如果过不去,那么一定是忽略了最后一次输入为合法的情况,即:
Can1: "Can a can can a can? It can
如这个测试点,如果不考虑最后终止位,那么将丢掉最后一个can
附本人AC代码:
#include<iostream>
#include<string>
#include<map>
#include<cctype>
using namespace std;
map<string, int>Ma;
int main() {
int max = 0;
char c;
string tmp;
for (;;) {
scanf("%c", &c);
if (!isalnum(c) ){
if (tmp.size() != 0) {
Ma[tmp]++;
if (Ma[tmp] > max)max = Ma[tmp];
}
tmp.clear();
if (c == '\n')break;
}
else {
if (isdigit(c))tmp.push_back(c);
else tmp.push_back(tolower(c));
}
}
for (auto it = Ma.begin(); it != Ma.end(); it++) {
if (it->second== max) {
printf("%s %d\n", it->first.c_str(), max);
return 0;
}
}
return 0;
}