力扣刷题---返回word中所有不重复的单词


当需要从一个数据集合中去除重复元素时,set是一个很好的选择。由于其不允许存储重复的元素,因此可以很容易地实现去重功能。这在处理原始数据或进行数据分析时特别有用。

题目:

给定一个字符串数组 words,请返回一个由 words 中所有不重复单词组成的列表,并按字母顺序排序。

示例:

输入:words = ["apple", "banana", "apple", "orange", "banana", "kiwi"]

输出:["apple", "banana", "kiwi", "orange"]

解释:去重后并按字母顺序排序得到的单词列表是 ["apple", "banana", "kiwi", "orange"]。

解题思路:
1创建一个空的 set 对象,用于存储不重复的单词。
2遍历字符串数组 words,将每个单词插入到 set 中。由于 set 会自动去重,并对单词排序。
3将 set 中的单词转换为一个 vector 对象。
4返回排序后的 vector 对象作为最终结果。

cpp 复制代码
#include <iostream>  
#include <vector>  
#include <set>   
#include <string>  
using namespace std;

void UniqueWords(vector<string>& v) {
	set<string> s(v.begin(), v.end());        // 利用set去重并自动排序  
	v = vector<string>{ s.begin(), s.end() }; // 将set中的单词复制到v中  
}

int main() {
	vector<string> v = { "apple", "banana", "apple", "orange", "banana", "kiwi" };
	UniqueWords(v);

	for (const auto & x : v) { //显示结果
		cout << x << " ";
	}
	cout << endl;

	return 0;
}
相关推荐
一个不知名程序员www42 分钟前
算法学习入门 --- 哈希表和unordered_map、unordered_set(C++)
c++·算法
Sarvartha1 小时前
C++ STL 栈的便捷使用
c++·算法
夏鹏今天学习了吗2 小时前
【LeetCode热题100(92/100)】多数元素
算法·leetcode·职场和发展
飞Link2 小时前
深度解析 MSER 最大稳定极值区域算法
人工智能·opencv·算法·计算机视觉
bubiyoushang8882 小时前
基于CLEAN算法的杂波抑制Matlab仿真实现
数据结构·算法·matlab
2401_894828123 小时前
从原理到实战:随机森林算法全解析(附 Python 完整代码)
开发语言·python·算法·随机森林
Remember_9933 小时前
【LeetCode精选算法】前缀和专题二
算法·哈希算法·散列表
源代码•宸4 小时前
Leetcode—509. 斐波那契数【简单】
经验分享·算法·leetcode·面试·golang·记忆化搜索·动规
博大世界4 小时前
matlab结构体数组定义
数据结构·算法
Loo国昌4 小时前
【LangChain1.0】第九阶段:文档处理工程 (LlamaIndex)
人工智能·后端·python·算法·langchain