我需要获得数组的所有组合。从最短的组合(1个字母)到最长的组合(|字母数|),没有重复
例如:
ArrayList<String> array = new ArrayList<String>();
array.add("a");
array.add("d");
array.add("e");
IterationWithoutDuplication(array);
public void IterationWithoutDuplication(array){
//some kind of a loop/recursion
printCurrentCombo();
//do some other work on the specific combo
}
输出应为:
a
d
e
ad
ae
da
de
ea
ed
ade
aed
dae
dea
ead
eda
注意它是如何首先出现的:
|array size|
字母组合但是所有的组合都是独一无二的,并且不止一次包含相同的字母。
当然我不希望只打印它,而是做一些工作 - 问题是如何以这种方式有效地扫描阵列。