2013-05-03 224 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而不向输出添加任何内容。)