在C++中,可以编写一个函数来检查一个单词在向量中是否重复了两次或更多,并输出它重复的次数。以下是一个示例代码:
#include <iostream>
#include <vector>
#include <unordered_map>
int checkWordDuplicates(const std::vector<std::string>& words, const std::string& targetWord) {
std::unordered_map<std::string, int> wordCount;
// 统计每个单词出现的次数
for (const std::string& word : words) {
wordCount[word]++;
}
// 检查目标单词是否重复,并输出重复次数
if (wordCount.find(targetWord) != wordCount.end()) {
int count = wordCount[targetWord];
if (count >= 2) {
return count;
}
}
return 0; // 目标单词未重复
}
int main() {
std::vector<std::string> words = {"apple", "banana", "apple", "orange", "apple"};
std::string targetWord = "apple";
int duplicateCount = checkWordDuplicates(words, targetWord);
std::cout << "The word \"" << targetWord << "\" is repeated " << duplicateCount << " times." << std::endl;
return 0;
}
这个函数使用了一个无序映射 std::unordered_map
来统计每个单词出现的次数。然后,它检查目标单词是否在映射中,并返回重复的次数。如果重复次数大于等于2,则表示目标单词重复了两次或更多。
这个函数的时间复杂度为 O(n),其中 n 是向量中的单词数量。它可以适用于任何类型的单词向量,并且可以轻松地扩展到检查多个单词是否重复。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云