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

本文介绍了一种高效的乱序字符串判断算法,通过对比两个字符串中各字符出现的次数来确定它们是否为彼此的乱序版本。该算法避免了排序操作,降低了时间复杂度。
1365

被折叠的 条评论
为什么被折叠?



