检查两个字符串具有相同的字符数和相同的Python字符出现次数



我有以下字符串,我需要检查两者是否有相同的字符数(我用len来做(和相同的字符出现次数(我不知道如何做(。我不能使用集合或排序;它必须是一个函数。我试着用set解决问题,但没有成功。

对于s1和s2,我必须获得True对于s3和s4,我必须获得虚假

s1=";aabbcc";,s2=";abcabc";,s3=";aab";,s4=";abb";

这是我的函数(不适用于s3和s4(有人能帮我吗?


def check(s3,s4):
if len(s3) == len(s4) and set(s3)== set(s4):
print (True)
else:
print (False)
check(s3,s4)

您可以自己计算每个字符的出现次数(使用dict理解(,然后进行比较:

def check(a,b):
res = []

for item in (a,b):
chars = set(item)
res.append({c: item.count(c) for c in chars})
return res[0] == res[1]
s1 = "aabbcc"
s2 = "abcabc"
s3 = "aab"
s4 = "abb"
print(check(s1,s2))
print(check(s3,s4))

输出:

True
False

还有另一种方法可以实现

s1 = "aabbcc"
s2 = "abcabc"
s3 = "aab"
s4 = "abb"
def check(s1, s2):
return {c: s1.count(c) for c in set(s1)} == {c: s2.count(c) for c in set(s2)}
print(check(s1, s2))
print(check(s3, s4))

输出

True
False

最新更新