题目
![]()
解法1
点击查看代码
#include <iostream>
#include <map>
using namespace std;
int main() {
string line;
getline(cin, line); // 读取整行输入
map<string, int> wordCount; // 统计单词出现次数
string word, mostFreqWord;
int maxFreq = 0;
for (int i = 0; i <= line.size(); i++) {
char ch = (i < line.size()) ? line[i] : ' '; // 确保最后一个单词能被处理
// 判断是否是字母或数字
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9')) {
// 转换为小写并加入当前单词
if (ch >= 'A' && ch <= 'Z') ch += 32; // 手动转换大写字母为小写
word += ch;
} else if (!word.empty()) { // 处理完整的单词
wordCount[word]++;
if (wordCount[word] > maxFreq || (wordCount[word] == maxFreq && word < mostFreqWord)) {
maxFreq = wordCount[word];
mostFreqWord = word;
}
word.clear(); // 清空单词,准备下一个
}
}
cout << mostFreqWord << " " << maxFreq << endl;
return 0;
}