力扣刷题---返回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;
}
相关推荐
liuyao_xianhui9 分钟前
优选算法_分治_快速排序_归并排序_C++
开发语言·数据结构·c++·算法·leetcode·排序算法·动态规划
爱丽_1 小时前
ThreadLocal 机制:弱引用 Entry、内存泄漏、线程池复用与线上排查
java·jvm·算法
2301_815482931 小时前
C++编译期矩阵运算
开发语言·c++·算法
☆5661 小时前
C++中的类型擦除技术
开发语言·c++·算法
m0_569881471 小时前
C++与自动驾驶系统
开发语言·c++·算法
2401_833197732 小时前
C++代码切片分析
开发语言·c++·算法
月落归舟2 小时前
每日算法题 14---14.环形链表
数据结构·算法·链表
m0_621438522 小时前
实时音频处理C++实现
开发语言·c++·算法
weixin_421922692 小时前
模板代码性能测试
开发语言·c++·算法
Liu628882 小时前
C++中的模板方法模式
开发语言·c++·算法