【发布时间】:2016-03-14 02:33:45
【问题描述】:
我正在尝试检查 2 个字符串是否是字谜。这个解决方案很简单,但效率不高(Ologn)我知道我可以使用 Collections 和 Counter,然后比较每个字符的出现,但我试图避免使用任何模块进行面试。解决这个问题的最快方法是什么? (也许,检查每个字符的出现?)
def check(word1,word2):
return sorted(word1)==sorted(word2)
【问题讨论】:
-
快速甚至不是这里的问题。您的代码中有多个错误,使其认为“汽车”和“猫”是字谜。
-
if sorted(l1) == sorted(l2)是,取决于sort是怎么做的,大概是O(nlogn) -
@user2357112 大坝真的。为什么要这样做。对不起,我是新人。
-
@RNar 你能解释一下“依赖”是什么意思吗? O(nlogn) 比 O(n) 快吗?
-
这种 O(nlogn) 是您遇到的最少的问题。如果您只比较 2 个单词 - 谁在乎?如果你问我,在单词集合中查找字谜的 O(n*n) 是一个更有趣的问题
标签: python