輸入一行文本(≤ 1048576 字符),統計「單詞」出現次數。單詞定義:字母數字序列([0-9A-Za-z]),非字母數字分隔。忽略大小寫。輸出最高頻單詞(小寫)及其次數,並列時輸出字典序最小者。
map[word]++#includeusing namespace std; int main() { map cnt; string word; int ch; while ((ch = getchar()) != '\n' && ch != EOF) { if (isalnum(ch)) word += tolower(ch); else if (!word.empty()) { cnt[word]++; word.clear(); } } if (!word.empty()) cnt[word]++; string best; int maxc = 0; for (auto& [w, c] : cnt) { if (c > maxc || (c == maxc && w < best)) { maxc = c; best = w; } } cout << best << ' ' << maxc << endl; return 0; }
getchar() 逐字符讀取避免緩衝區限制word 是否非空Input: Can1: "Can a can can a can? It can!" 單詞:can1, can, a, can, can, a, can, it, can 統計:can→5, a→2, can1→1, it→1 Output: can 5 ✓