Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 代码战中的混乱_Python_Python 3.x - Fatal编程技术网

Python 代码战中的混乱

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

我一直在继续在代码战中练习python技能,我再次需要一些帮助。 它来自一种叫做混乱的代码战

完成函数扰码(str1,str2),如果str1字符的一部分可以重新排列以匹配str2,则返回true,否则返回false

注:

仅使用小写字母(a-z)。没有标点符号或数字 将包括在内。需要考虑性能

我已经编写了代码,有一些测试错误表明

测试最多600000个字符的两个字符串

它也应该适用于随机输入:True应该等于False

这是我的密码

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
?创建两个字符串的
计数器
。如果第一个字符串的数字都低于第二个,并且第二个字符串的所有字母都出现在第一个计数器中,那么你就不能再多了。