def judge1(s1,s2):
c1=[0]*26#产生一个26个0的数组
c2=[0]*26
for i in range(len(s1)):
pos=ord(s1[i])-ord('a')
c1[pos]+=1
for i in range(len(s2)):
pos=ord(s2[i])-ord('a')
c2[pos]+=1
if c1==c2:
bool=True
else:
bool=False
return bool
print(judge1('adasfasf','fsafsada'))
print(judge1('adce','abcd'))
方案二
def judge2(s1,s2):
c1=[0]*26#产生一个26个0的数组
c2=[0]*26
for i in range(len(s1)):
pos=ord(s1[i])-ord('a')#ord计算字母的aci码
c1[pos]+=1#让与26个字母中相同的为1
for i in range(len(s2)):
pos=ord(s2[i])-ord('a')
c2[pos]+=1
i=0
bool=True
while i<len(s1) and bool:
#while中的i需要赋初值,不然会乱跑
if c1[i]==c2[i]:#如果是循环下一个字母
i+=1
else:#直接退出循环
bool=False
return bool
print(judge2('adasfasf','fsafsada'))
print(judge2('adce','abcd'))
方案一def judge1(s1,s2): c1=[0]*26#产生一个26个0的数组 c2=[0]*26 for i in range(len(s1)): pos=ord(s1[i])-ord('a') c1[pos]+=1 for i in range(len(s2)): pos=ord(s2[i])-ord('a') c2[pos]+=1 if c1==c2: bool=Tru