我可以用Python替换元组(sorted(my_string))吗?

时间:2016-06-07 20:24:38

标签: python algorithm sorting data-structures set

我想使用"字符,其中顺序无关紧要"作为在Python中构建字典的关键。

喜欢" abc"和" cba"可以给我相同的哈希索引," aab"和" ab"给我不同的哈希指数。

我发现一种方法是使用tuple(sorted(my_string))来清除一个字符列表,但它可能需要O(NlogN)时间复杂度。

我尝试使用Counter,但它不可用。 Frozenset可以删除,但不允许重复。

是否有更好的方法(O(N)时间复杂度)来替换tuple(sorted(my_string))

如果上面有错误,请纠正我。谢谢!

1 个答案:

答案 0 :(得分:3)

O(N)您可以获得frozenset(Counter(my_string).items())时间复杂度。但是,你可能想知道这实际上是否在实践中获胜,因为这段代码的常数因子可能高到超过''.join(sorted(my_string))的额外对数因子。