有效地检查字符串是否由Python中的一个字符组成

有效地检查字符串是否由Python中的一个字符组成,第1张

有效地检查字符串是否由Python中的一个字符组成

到目前为止,这是最快的,甚至比

count()
它快几倍,只需使用出色的mgilson计时套件即可:

s == len(s) * s[0]

在这里,所有检查都是在Python C代码中完成的,它只是:

  • 分配len个字符;
  • 用第一个字符填充空间;
  • 比较两个字符串。

字符串越长,时间奖励就越大。但是,正如mgilson所写,它会创建字符串的副本,因此,如果您的字符串长度为数百万个符号,则可能会出现问题。

从计时结果可以看出,解决任务的最快方法通常不会为每个符号执行任何Python代码。但是,该

set()
解决方案还可以在Python库的C代码中完成所有工作,但是它仍然很慢,可能是由于通过Python对象接口 *** 作字符串。

UPD: 关于空字符串大小写。如何处理它很大程度上取决于任务。如果任务是“检查字符串中的所有符号是否都相同”,

s == len(s) *s[0]
则为有效答案(无符号表示错误,可以例外)。如果任务是“检查是否存在唯一的唯一符号”,则空字符串应为False,答案为
s and s ==len(s) * s[0]
,或者
bool(s) and s == len(s) *s[0]
您是否希望接收布尔值。最后,如果我们将任务理解为“检查是否存在不同的符号”,则空字符串的结果为True,答案为
not s or s ==len(s) * s[0]



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643986.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存