📅  最后修改于: 2023-12-03 15:25:46.561000             🧑  作者: Mango
在编写代码时,我们可能会遇到需要打印给定数组中所有唯一字符串的情况。这个问题可以通过使用哈希表或集合等数据结构来解决。
使用哈希表的基本思路是将数组中的每个字符串作为键值,如果遇到相同的字符串,则更新计数器。最终,我们只需要输出哈希表中计数器为1的所有键值即可。
def print_unique_strings(arr):
"""
打印给定数组中所有唯一字符串的函数
"""
hash_table = {}
for s in arr:
if s in hash_table:
hash_table[s] += 1
else:
hash_table[s] = 1
for s, count in hash_table.items():
if count == 1:
print(s)
另一种方法是使用集合。我们可以遍历数组,并将每个字符串添加到集合中。如果集合中已经存在相同的字符串,则跳过该字符串。最终,我们只需要输出集合中的所有元素即可。
def print_unique_strings(arr):
"""
打印给定数组中所有唯一字符串的函数
"""
unique_set = set()
duplicates_set = set()
for s in arr:
if s in unique_set:
duplicates_set.add(s) #将重复的字符串存入另一个集合中
else:
unique_set.add(s)
for s in unique_set:
if s not in duplicates_set:
print(s)
我们可以使用以下代码来测试上述函数:
test_arr = ['apple', 'banana', 'coconut', 'banana', 'dragonfruit', 'eggplant', 'apple', 'dragonfruit']
print('使用哈希表方法:')
print_unique_strings(test_arr)
print('使用集合方法:')
print_unique_strings(test_arr)
输出应该如下:
使用哈希表方法:
coconut
eggplant
使用集合方法:
coconut
eggplant