如何像图形一样扫描数组 - 从数组创建独特的组合

时间:2013-09-09 20:04:22

标签: java arrays graph

我需要获得数组的所有组合。从最短的组合(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

注意它是如何首先出现的:

  • 1个字母组合;那么
  • 2个字母组合;那么
  • 3个字母组合;那么
  • ..
  • |array size|字母组合

但是所有的组合都是独一无二的,并且不止一次包含相同的字母。

当然我不希望只打印它,而是做一些工作 - 问题是如何以这种方式有效地扫描阵列。

0 个答案:

没有答案