首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Y位中x选项的排列

Y位中x选项的排列
EN

Stack Overflow用户
提问于 2020-04-05 07:42:12
回答 1查看 22关注 0票数 0

这似乎与其他排列问题类似,但差异被证明是一个挑战。

given x options (一般为3-7,或[a,b,c] to [a,b,c,d,e,f,g] )

获取所有permutations of y length (通常也是3-7)

代码语言:javascript
运行
复制
x = [a,b,c]  y = 7 

[a,a,a,a,a,a,a]
[a,a,a,a,a,a,b]
[a,a,a,a,a,b,a]
[a,a,a,a,b,a,c]
[a,c,a,b,a,a,a]
     etc.

代码语言:javascript
运行
复制
x=7 [a,b,c,d,e,f,g]    y=3

[a,a,a]
[a,d,g]
[a,g,d]
[g,d,a]
  etc.   

我想说我已经取得了一些进展,但我甚至不知道如何开始,而涉及排列的所有其他解决方案似乎都严重依赖于字符串长度。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-05 08:23:24

这些不是真正的排列,它们是字母表上的字符串。它可以像这样递归实现:

代码语言:javascript
运行
复制
let alphabet = ['a', 'b', 'c', 'd'];
let strings = [];

function generateStrings(alphabet, strings, length, prefix = []) 
{
  for (let letter of alphabet) {
    if (length === 1) {
      strings.push([letter].concat(prefix));
    } else {
      generateStrings(alphabet, strings, length - 1, [letter].concat(prefix));
    }
  }
}

generateStrings(alphabet, strings, 3);

console.log(strings);

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61036218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档