2011-02-09 104 views
0

我想要在多个列表中构建所有字符串的所有组合。我有三个要包含的参数。这些是"And","OR""Equal"n个列表字符串的组合

例如,我有以下三个列表:

表1: “印度”, “中国”, “伊朗”

表2: “印地文”, “英语” , “中国人”

表3: “森林”, “沙漠”, “河”

输出应该是

 
India OR Hindi OR Forest 
India AND Hindi AND Forest 
India EQUAL Hindi EQUAL Forest 
India OR China OR Hindi 
India AND China AND Hindi 
India EQUAL China EQUAL Hindi 

Iran OR English OR River 
Iran AND English AND River 
Iran EQUAL English EQUAL River 

等等...

列表的数量,并在列表中字符串的数量是不固定的。

我宁愿递归解决方案。

+4

“最好使用使用C#的递归函数!!!!”这听起来像是功课。祝你好运。 – jason 2011-02-09 15:33:13

+0

这并不意味着你不会有帮助... – 2011-02-09 15:33:47

回答

1

我认为您首先需要创建单词的组合,并且最后一步应用它们之间的每个关键字。

对于当前列表中的每个项目,如果列表是最后一个插入所有关键字,否则将下一个单词列表递归为当前。

0

你只是试图创建排列。 Donald E Knuth的“计算机编程艺术第4卷”将是理解这一点的好地方,如果你不能从哪里开始解决方案(我同意其他人认为这看起来像它涉及到一些作业 - 尤其是递归引用。为什么要递归?) 在第4卷中,您需要Fascicle 2“生成所有元组和排列”和Fascicle 3“生成所有组合和分区”。

我会迭代地处理它,而不是递归地。然后,它确实是一个简单的例子,它循环显示结果中每个“空格”的每个选项。为什么你需要递归?递归只会增加开销imho。