gpt4 book ai didi

python - 检查是否可以使用 python 中的字符列表创建字符串的最快方法

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:05 25 4
gpt4 key购买 nike

我需要检查是否可以使用字符列表创建字符串并返回 True 或 False。

我对 list.count 或 collections.Counter 使用不同的解决方案。

我也在使用这个解决方案,我不需要通读字符列表:

def check(message, characters):
try:
[list(characters).remove(m) for m in message]
return True
except:
return False

有没有最快的方法?一个非常非常大的字符列表。计数器和列表计数似乎较慢。不知道是否有快速的 pythonic 方法来执行此操作。

例子:

message = "hello"
characters = "hheellooasdadsfgfdgfdhgfdlkgkfd"

check(message, characters) # this should return True or False
# characters can be a veeeeery long string

重复很重要 所以例如 characters = "hheloo"不适用于 message = "hello"

最佳答案

你可以使用 collections.Counter() .只需构建两个计数器并使用 subtract()检查是否有负计数的方法:

>>> c1 = Counter(characters)
>>> c2 = Counter(message)
>>> c1.subtract(c2)
>>> all(v >= 0 for v in c1.values())
False

这应该在线性时间内工作。

关于python - 检查是否可以使用 python 中的字符列表创建字符串的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com