2024-1-8,卡码网第17题判断集合成员
目录
1. 题目描述
这是关于哈希表的第二道题。题目给定一定数量的集合,集合内包含一定数量的数字。然后再给定一个数字,需要编写程序去判断这个数字是否在集合中。如果存在,输出 YES;不存在,则输出 NO。
2. 代码实现
题目本身并没有难度,主要是介绍了一种新的数据类型——集合(set)。集合(Set)是一种无序、可变的数据类型,用于存储不重复的元素。集合可以包含任意不可变的数据类型,如整数、浮点数、字符串、元组等,但不能包含可变的数据类型,例如列表、字典等。
2.1 集合
既然要使用新的数据类型,那么就需要知道集合怎么创建和使用。
集合,可以使用大括号创建,元素之间用逗号隔开,也可以使用 set 函数。
set1 = {1, 2, 3}
set2 = set(1, 2, 3)
在python中,集合也支持进行交集(&),并集(|),差集(-)的运算。
Uset = set1 | set2 #集合并集
Iset = set1 & set2 #集合交集
Dset = set1 - set2 #集合差集
还有一些基础的集合操作:
- 添加元素:可以使用 add() 添加元素到指定集合。
- 删除元素:可以使用 remove() 和 discard() 删除集合中指定元素。如果元素不存在,使用 remove 会报错,但使用 discard 不会。
- 清空集合: 可以使用 clear() 清空集合。
- 遍历集合: 使用 for 循环遍历整个集合。
set1 = {1, 2, 3}
set1.add(4) #把4添加到集合中
set1.remove(2) #把2从集合中删除
for number in set1:
print(number)
# 遍历集合并打印
set1.clear()
2.2 具体代码
只需要先读取输入数据,创建集合,然后读取需要判断的数字,使用 if 语句判断,如果该元素存在,则输出 YES,否则输出 NO。代码如下:
numbers = {1, 2, 3, 4, 9}
n = 3
if n in numbers:
print('YES')
else:
print('NO')
3. 总结
这是有关于哈希表的第二道题,介绍了全新的数据类型——集合,与列表不同,集合有自己的创建方式和使用方法。列表,即上一题(第16题出现频率最高的字母)有介绍,这里不再赘述。
第16题 出现频率最高的字母http://t.csdnimg.cn/JiSiK
本人所用代码编辑器为 VS Code,刷题网站为卡码网