使用每个变量数的一个条目,连接所有可能的字符串。

这里困扰我的是列表数量的变化。用(伪代码)循环很容易...

 for i=1 to list1_size
   for ii=1 to list2_size
     for iii=1 to list3_size
        results_list.add(list1[i]+list2[ii]+list3[iii])

...但我需要如何处理不同数量的列表。

我已经开始计算每个列表中的条目数并尝试着通过递归来解决,但现在我卡住了。

编辑:为了澄清,我正在寻找的是...

输入:包含不同数量的表格和不同数量条目的列表。

{"A","B","C"}  {"1","2","3","4"}  {"*","%"}

输出:

{"A1*", "A1%", "A2*", "A2%", "A3*", "A3%", "A4*", "A4%",
 "B1*", "B1%", "B2*", "B2%", "B3*", "B3%", "B4*", "B4%",
 "C1*", "C1%", "C2*", "C2%", "C3*", "C3%", "C4*", "C4%"}
点赞
用户1847592
用户1847592
本地变量 list_of_lists 存储了一个嵌套表,其中包含了三个不同的子表,每个子表内包含了不同的元素。

本地变量 positions 存储一个空表,接着使用一个循环将表的长度赋值给每个元素。

定义了一个函数增加 positions 表中元素的值,函数内部有一个循环,从 list_of_lists 表的最后一个子表开始遍历,每次将当前子表的元素数量取模后加一,即可以将其看作一个进位操作。如果某个子表的位置从最后一个元素进位到了第一个元素,那么就返回 true。

定义了一个函数获取当前 positions 表对应的选择结果,即将每个子表中对应 positions 元素位置的值拼接成一个字符串返回。

定义了一个空表 result,使用 repeat 操作进行循环,每次向 result 表中插入一个当前 positions 下的选择结果。若 increase_positions 函数返回了 false,则退出循环。
2015-10-03 12:01:29