【发布时间】:2016-06-11 23:31:33
【问题描述】:
我发现递归,除了像阶乘这样非常直接的递归,很难理解。如果我想打印一个字符串的所有排列,那么假设字符串长度为 5,比如"abcde",长度为 7 的排列应该是
abced
abdce
abdec
abecd
abedc
acbde
acbed
acdbe
acdeb
acebd
acedb
adbce
adbec
adcbe
adceb
adebc
adecb
aebcd
aebdc
aecbd
aecdb
aedbc
aedcb
bacde
baced
badce
badec
baecd
baedc
bcade
bcaed
...
如果我想要一个递归来计算5 的阶乘的所有排列,例如4、3、2 或1。我应该使用哪种算法? C++ 库中是否有此功能?
假设打印输出应如下所示:
acbd
bcad
abc
bac
ab
ba
【问题讨论】:
-
原始长度当然是5 xD
-
你有没有尝试过?也许一些代码?结帐this question on interview cake 了解力学的下降解释
-
5 的阶乘是 120...我认为您的意思是长度小于或等于 5 的排列