2011-02-09 68 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。