乱序字符串的检查(算法)

乱序字符串检查:指一个字符串只是另一个字符串的重新排列。例如,'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'))

猜你喜欢

转载自www.cnblogs.com/masterhu/p/9664645.html