我有一个字符串向量,我试图创建一个返回向量的所有子组的函数,所以如果像这样创建我的向量:
Vector<String> vec = new Vector<String>();
vec.add("a");
vec.add("b");
vec.add("c");
powerSet(vec);
我希望该子组将返回所有子组 - {},{&#34; a&#34;},{&#34; b&#34;},{&#34; c&#34;},{& #34;&#34;&#34; b&#34;},{&#34; C&#34;&#34; b&#34;},{&#34;&#34;&# 34; C&#34;},{&#34;&#34;&#34; b&#34;&#34; C&#34;}
那是递归方式:
powerSet功能
public static Vector<Vector<String>> powerSet(Vector<String> originalSet) {
Vector<Vector<String>> sets = new Vector<Vector<String>>();
if (originalSet.isEmpty()) {
sets.add(new Vector<String>());
return sets;
}
List<String> list = new ArrayList<String>(originalSet);
String head = list.get(0);
Vector<String> rest = new Vector<String>(list.subList(1, list.size()));
for (Vector<String> set : powerSet(rest)) {
Vector<String> newSet = new Vector<String>();
newSet.add(head);
newSet.addAll(set);
sets.add(newSet);
sets.add(set);
}
return sets;
}
表现对我很重要,所以我正在寻找一种迭代的方式。 知道怎么转换吗?