Python 代码战中的混乱
我一直在继续在代码战中练习python技能,我再次需要一些帮助。 它来自一种叫做混乱的代码战 完成函数扰码(str1,str2),如果str1字符的一部分可以重新排列以匹配str2,则返回true,否则返回false 注: 仅使用小写字母(a-z)。没有标点符号或数字 将包括在内。需要考虑性能 我已经编写了代码,有一些测试错误表明 测试最多600000个字符的两个字符串 它也应该适用于随机输入:True应该等于False 这是我的密码Python 代码战中的混乱,python,python-3.x,Python,Python 3.x,我一直在继续在代码战中练习python技能,我再次需要一些帮助。 它来自一种叫做混乱的代码战 完成函数扰码(str1,str2),如果str1字符的一部分可以重新排列以匹配str2,则返回true,否则返回false 注: 仅使用小写字母(a-z)。没有标点符号或数字 将包括在内。需要考虑性能 我已经编写了代码,有一些测试错误表明 测试最多600000个字符的两个字符串 它也应该适用于随机输入:True应该等于False 这是我的密码 def scramble(s1, s2): # yo
def scramble(s1, s2):
# your code here
text = ""
for i in s2:
if (i in s1) and i.islower() and i.isalpha():
text += i
else:
continue
if text == s2:
return True
else:
return False
我不明白。我在空闲状态下测试了代码,它返回了正确的答案。请帮助,提前谢谢。来自集合进口柜台
from collections import Counter
def scramble(str1,str2):
c1 = dict(Counter(str1))
c2 = dict(Counter(str2))
return all((c2[ch] <= c1.get(ch,0) for ch in c2))
def加扰(str1、str2):
c1=dict(计数器(str1))
c2=dict(计数器(str2))
return all((c2[ch]您可以使用计数器做一件漂亮的事情:减法。一元加号运算符会删除没有严格正计数的键
下面是如何将其用于计数器的单个实例:
from collections import Counter
def scramble(s1, s2):
c = Counter(s2)
c.subtract(s1)
return not +c
或者,如果使用两个计数器
对象,则可以使用减法运算符,该运算符也仅保留结果中计数严格为正的键:
from collections import Counter
def scramble(s1, s2):
return not (Counter(s2) - Counter(s1))
但是这比前面的方法效率稍低。代码执行与预期不同的操作的示例是什么?我猜扰码('a','aa'))
返回True
,但它应该返回False
?创建两个字符串的计数器
。如果第一个字符串的数字都低于第二个,并且第二个字符串的所有字母都出现在第一个计数器中,那么你就不能再多了。