gpt4 book ai didi

python - 置换算法分析

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:21:14 24 4
gpt4 key购买 nike

为了一次大面试,我一直在疯狂地研究算法。这种特殊的算法快把我逼疯了,我在一些不理解的行中添加了注释。

def permute(s):
out = []

if len(s) == 1:
# wouldn't setting out replace everything in out?
out = [s]

else:
for i, let in enumerate(s):

# how does it know that I only want 2 strings?
for perm in permute(s[:i] + s[i+1:]):

out += [let + perm]

return out

print permute("cat")

这个算法的时间复杂度是O(n!)对吗?

最佳答案

最初 out 是在 permute 方法的上下文中定义的,因此每次调用都会有自己的 out 向量。因此,当重新定义 out = [s] 时,您只需覆盖方法上下文中的 out=[]

如果输入大于一个字符,则会发生这种情况:

# Iterate for each char
for i, let in enumerate(s):
# Iterate for each permutation of the string without the char i
for perm in permute(s[:i] + s[i+1:]):
# Put the removed char in the beginning of the permutation
# and add it to the list.
out += [let + perm]

关于python - 置换算法分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50431347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com