乱序字符串检查:指一个字符串只是另一个字符串的重新排列。例如,'heart'
和 'earth'
就是乱序字符串。
最优的解题思路是:两个含26个0元素的列表,遍历字符串,统计字符串中每个字符在列表中的个数,然后检验两个列表是否相等,若相等则为乱序字符串
def anagramSolution4(s1,s2):
c1=[0]*26
c2=[0]*26
for i in range(len(s1)):
j=ord(s1[i])-ord('a')
c1[j]=c1[j]+1
for i in range(len(s2)):
j=ord(s2[i])-ord('a')
c2[j]=c2[j]+1
still=True
for i in range(26):
if c1[i]==c2[i] and still:
still=True
else:
still=False
return still
print(anagramSolution4('adbc','bdca'))