【发布时间】:2018-06-29 05:37:17
【问题描述】:
我需要找到给定字符串的所有可能组合,从最小长度到最大长度。
interface allCombos(string: String, min: Number, max:Number): Array {}
所以如果我的输入字符串是‘abcde’,并且我的最小长度是3,我希望结果是:
长度为 3:
[‘abc’, ‘abd’, ‘abe’, ‘acd’, ..., ‘bcd’, ‘bce’, ..., ‘eda’, ...]
与长度 4 连接:
[‘abcd’, ‘abdc’, ‘acdb’, ‘acbd’, …etc]
连接所有可能的组合,长度不超过最大参数。不应大于输入字长。
我开始认为所有可能的组合都是∑(3! + 4! + … + n!)。但后来我发现我错了,因为对于每个长度子集,整个世界都有很多组合(例如 6 个字母字符串的 3 长度组合)。
社区可以帮我解决这个问题吗?
解决方案可以是JavaScript、Python,甚至是伪代码。
编辑
为了知识。谁能回答我,在这种情况下描述结果大小的公式?我知道不是@987654328@。
【问题讨论】:
-
如果字符串有重复的字母,是否应该独立考虑每个字母? (如果你有“bb”,你会以“b”或“bb”还是[“bb”,“bb”]结尾?)
-
该问题与python或JavaScript有关吗?
-
好吧,guest271314 我是这么认为的,因为我宁愿有这些语言的编码解决方案
-
John Doe 是的,即使有重复我想计算它们
-
“那些语言”是什么意思?问题的主题是排列,而不是组合,是吗?