算法部分:列出所有可能的子集
发布时间
阅读量:
阅读量
题目描述:
生成包含n个元素的集合的所有子集。例如,对于三个元素{a,b,c}而言,其所有子集包括:{},{a},{b},{c},{a,c},{ac},{b,c},{a,b,c}.
输入:abc
输出:
cba
ba
ca
a
cb
b
c
null
解题思路:
递归方法:
-
以集合{a,b,c}为例,若要得到它的所有子集,可以将其划分为两个部分:
-
1.先求出集合{b,c}的所有子集(问题规模随之缩小)
-
2.将a添加到{b,c}的所有子集中
-
上述两部分的总和,正好构成了整个集合{a,b,c}的全部子集
public static List<String> subSet(String str){
List<String> list=new ArrayList<String>();
if(str.length()==0){//递归结束条件
list.add(null);//如果字符串为空,添加一个空集合
return list;
}
//获取str中,除去第一个元素后,子串的所有元素的子集
List<String> subList=subSet(str.substring(
全部评论 (0)
还没有任何评论哟~
