乱序字符串是指一个字符串只是另一个字符串的重新排列。例如,'heart'
和 'earth'
就是乱序字符串。
下面的方法是比较连个字符串是不是乱序字符串,下面应该是算法复杂度比较小的的了。其他的先排序,然后比较。应该算比较容易想到。但是复杂度会提高。
def compileStr(a,b):
s1 = [0]*26
s2 = [0]*26
flag = 0
tag = True
if len(a)!= len(b):
return False
for i in range(len(a)):
j = ord(a[i])-ord('a')
s1[j] = s1[j]+1
for i in range(len(b)):
j = ord(b[i])-ord('a')
s2[j] = s2[j]+1
while flag< 26 and tag:
if s1[flag]== s2[flag]:
flag+= 1
else:
tag = False
return tag
if __name__== '__main__':
a = "abcmnk"
b = "bcamn"
tt = compileStr(a,b)
print(tt)