单词个数统计 描述 输入一段英语句子(数据只包含空格,小写字母,英文逗号和句号),求这段句子中包含了多少个不重复的单词。 输入 一段英文句子 输出 一个数字,表示输入的句子中有多少个不重复的单词。 输入样例 1 i love china 输出样例 1 3 用c++解题
时间: 2024-12-06 16:24:01 浏览: 36
在C++中,我们可以使用`std::set`容器来解决这个问题,因为`set`自动去除了重复元素。下面是一个简单的C++函数实现:
```cpp
#include <iostream>
#include <sstream>
#include <string>
#include <unordered_map>
#include <set>
int countDistinctWords(const std::string& sentence) {
std::istringstream iss(sentence);
std::unordered_map<std::string, int> word_count;
std::string word;
while (iss >> word) {
if (word.empty()) continue; // ignore empty words like spaces or punctuation
word_count[word]++;
}
return word_count.size(); // return the size of the set, which is unique word count
}
int main() {
std::string input = "i love china";
std::cout << "Number of distinct words: " << countDistinctWords(input) << std::endl;
return 0;
}
```
在这个程序中,我们首先创建了一个`istringstream`来处理输入的字符串,然后使用`unordered_map`来存储每个单词及其出现次数。遍历过程中,如果遇到空的单词(比如空格或标点符号),就忽略它。最后返回`word_count`的大小作为不重复单词的数量。
阅读全文