【发布时间】:2019-09-02 13:28:42
【问题描述】:
我遇到了这个 python 问题;过去一个小时我一直在努力,但我完全陷入困境。我仍然对递归不太满意,而且问题越来越难,所以非常感谢任何类型的帮助!
问题很简单,我需要编写一个函数,将 n 和 w 作为输入;其中 n 是位串的大小,w 是字符串中 1 的个数。输出应该是它的所有排列。
例子:
n = 3, w = 1 : ['001', '010', '100']
n = 4, w = 2: ['0011', '0101', '0110', '1001', '1010', '1100']
这是我到目前为止所写的,但我对其进行了调整或在 python 可视化器中运行它,我就是想不通:
def genBinStr2(n,w):
if n <=0 or w <= 0 :
return [""]
X = genBinStr2(n-1,w)
Y = genBinStr2(n-1,w-1)
M = []
for s in X:
M.append("0"+s)
for m in Y:
M.append("1"+s)
return M
print (genBinStr2(3,1))
输出是:
runfile('/Users/Rayan/Desktop/AUB Spring 2019/EECE 230 /Revision/untitled0.py', wdir='/Users/Rayan/Desktop/AUB Spring 2019/EECE 230 /Revision')
['000', '001', '011', '111']
再次感谢任何帮助!我真的很想能够解决这个问题
谢谢!!
【问题讨论】:
-
我正在查看,但我看到的一件事是 Y 中的 m:M.append("1"+s) 应该是 "1"+m?
-
@user2379875 打败我。
-
@user2379875 这确实是一个愚蠢的错误... xD 但它并没有完全解决它:( 非常感谢你看一看 :3