我想将字符添加到字符串中,但要确保最终列表中的所有字母都是 唯一的 。
例如:"aaabcabccd"→"abcd"
"aaabcabccd"
"abcd"
现在,我当然想到了两种解决方案。一种是使用list,它将字符与ASCII码映射。因此,每当我遇到一个字母时,它都会将索引设置为True。之后,我将扫描列表并附加所有已设置的列表。时间复杂度为 O(n) 。
list
True
另一个解决方案是使用dict和遵循相同的过程。映射完每个字符后,我将对字典中的每个键进行操作。这也将具有 线性 运行时间。
dict
由于我是Python新手,所以我想知道哪种方法更节省空间。哪一个可以更有效地实施?
PS :创建列表时顺序 并不 重要。
最简单的解决方案可能是:
In [10]: ''.join(set('aaabcabccd')) Out[10]: 'acbd'
请注意,即使示例中另有说明,也不能保证字母在输出中出现的顺序。
您将输出称为“列表”。如果列表是您真正想要的,请替换''.join为list:
''.join
In [1]: list(set('aaabcabccd')) Out[1]: ['a', 'c', 'b', 'd']
就性能而言,在此阶段担心它听起来像过早的优化。