【发布时间】:2016-10-15 23:53:55
【问题描述】:
问题是让我返回包含给定长度 n 的由“cc”和“ddd”组成的所有可能的字符串组合的集合。
例如,如果给定的长度是 5,那么 set 将包括“ccddd”和“dddcc”。
并且长度为 6 将返回包含“cccccc”、“dddddd”的集合
并且长度 7 将返回包含 "ccdddcc","dddcccc","ccccddd" 的集合
长度为 12 将返回 12 种不同的组合,依此类推
但是,返回的集合是空的。 你能帮忙吗?
“请理解极差的编码风格”
public static Set<String> set = new HashSet<String>();
public static Set<String> generateset(int n) {
String s = strings(n,n,"");
return set; // change this
}
public static String strings(int n,int size, String s){
if(n == 3){
s = s + ("cc");
return "";}
if(n == 2){
s = s + ("ddd");
return "";}
if(s.length() == size)
set.add(s);
return strings(n-3,size,s) + strings(n-2,size,s);
}
【问题讨论】:
-
为什么你的递归返回的是空字符串?
-
我不知道我什么时候打印集返回它只是显示“[]”