因此,我需要递归地查找给定字符串的所有子集。 我现在拥有的是:
static ArrayList<String> powerSet(String s){
ArrayList<String> ps = new ArrayList<String>();
ps.add(s);
for(int i=0; i<s.length(); i++){
String temp = s.replace(Character.toString(s.charAt(i)), "");
ArrayList<String> ps2 = powerSet(temp);
for(int j = 0; j < ps2.size(); j++){
ps.add(ps2.get(j));
}
}
return ps;
我现在知道问题出在哪里了,但我不知道如何修复它。目前,我找到了temp的所有幂集,它们是"bcd"、"acd"、"abd"、"abc",这会导致重复。有什么好的解决方法吗?
在这里所指的幂集是指,如果字符串是 abc,则返回 "", "a", "b", "c", "ab", "ac", "bc", "abc"。