今天同事碰到个问题, 我因为生疏, 也耗了些时间才搞定.
下面类型的一种数组
list =
[
["a", "b"],
["1"]
["dd", "ee"]
]
需要得到的遍历组合结果为 "a1dd", "a1ee", "b1dd", "b1ee"
直接用循环似乎并不方便实现.
以下是递归的一种实现方法.
len = num_of_member( list )
fun( list, i, str )
{
if( i < len )
{
len_tmp = num_of_member( list[ i ] )
for( j=0; j<len_tmp; j++)
{
fun(list, i+1, str += list[i][j] );
}
}
else
{
output( str );
}
}
main()
{
str = "";
fun(list, 0, str);
}