洛谷 P1026 统计单词个数
时间: 2023-08-23 22:06:45 浏览: 150
这道题目可以使用哈希表(unordered_map)来记录每个单词出现的次数。具体操作可以参考下面的代码实现:
```c++
#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;
int main() {
string str;
unordered_map<string, int> cnt; // 哈希表,记录每个单词出现的次数
while (cin >> str) { // 从输入中读取字符串
string word;
for (auto c : str) { // 遍历字符串中的每个字符
if (isalpha(c)) { // 如果是字母,则将其加入到当前单词中
word += tolower(c);
} else if (!word.empty()) { // 如果不是字母,且当前单词非空,则说明一个单词结束了
cnt[word]++; // 将该单词出现次数加 1
word.clear();
}
}
if (!word.empty()) { // 处理最后一个单词
cnt[word]++;
}
}
for (auto p : cnt) { // 遍历哈希表,输出每个单词及其出现次数
cout << p.first << " " << p.second << endl;
}
return 0;
}
```
需要注意的是,这道题目中的单词可能包含数字和特殊字符,因此在处理单词时,需要先判断字符是否为字母。此外,为了方便起见,可以将所有单词转换为小写字母。
阅读全文