2013-05-03 147 views
-4

函數接收char [,]。如何遍歷char數組

舉例來說,如果它需要

 
000 
LAD 
0B0 

傳遞要打印出非零字符的所有可能的組合:

 
L 
LA 
LAD 
LAB 
A 
AL 
AB 
AD 

private void Traverse(char[,] area) 
{ 

} 
+0

請發佈您的代碼。 – 2013-05-03 17:46:55

+0

這個例子可能會有幫助:http://stackoverflow.com/questions/756055/listing-all-permutations-of-a-string-integer – 2kay 2013-05-03 17:49:20

+0

組合或排列?順序對排列很重要,但對於組合而言並非如此。你想**所有**這樣?這意味着如果一組字母的長度爲5({a,b,c,d,e}),那麼您將需要5件東西的組合,每次5件,每次4件,每次3件,2件一次一個,一次?這個問題應該開始你的方式:http://stackoverflow.com/questions/127704/algorithm-to-return-all-combinations-of-k-elements-from-n – 2013-05-03 17:50:42

回答

0

最簡單的方法是用兩個字符串,初始和輸出寫一個遞歸函數。我假設你想要組合,而不是組合,所以它更容易一些。基本情況是檢查初始是否爲空,然後打印輸出。這個步驟是從初始狀態中移除一個字符,然後調用遞歸函數兩次,一個是輸出未改變,另一個是已刪除字符添加到輸出中。但是,如果刪除的字符爲0,那麼您只能調用該函數一次(刪除0而不向輸出添加任何內容。)