【发布时间】:2021-07-29 06:22:32
【问题描述】:
考虑以下输入:
[
// all inner arrays have the same size
["en","play","checkers"]
["pt","jogar","damas"]
]
同时考虑以下输出:
en/play/checkers
en/play/damas
en/jogar/checkers
en/jogar/damas
pt/play/checkers
pt/play/datas
pt/jogar/checkers
pt/jogar/damas
这意味着我合并了两个数组并生成了多个字符串。如果您将输入视为一个矩阵,您会注意到不同列之间永远不会进行组合(例如 /en/chess/play)。这是一个列限制。
当我们知道数组的数量 (2) 及其大小 (3) 时,算法将类似于:
for i=0 ; i<3; i++
for j=0; j<3; j++
for k=0; k<3; k++
matrix[i][j][k]
问:但是我如何编写一个适用于任意数量 (N)、任意固定大小 (K) 的数组的算法?
【问题讨论】:
-
使用递归。我可能会向您展示我的意思的示例,但没有给出数据类型,甚至没有提到编程语言。
-
因为不是特定的语言问题。
-
确实如此,所以我之前的建议就足够了。
-
感谢您的单字建议 :)
-
我会说它是每个单词选择的笛卡尔积。
标签: arrays algorithm combinations permutation