我正在尝试创建一个递归方法,它将返回一个String数组,其中包含两个字符串的所有可能性。
答案 0 :(得分:1)
如果必须使用递归,那么最简单的解决方案可能是使用第二个递归方法来替换迭代:
private List<String> combine(final int n) {
if (n == 0) {
return Arrays.asList("");
} else {
return addStrings(combine(n - 1));
}
}
private List<String> addStrings(List<String> current) {
if (current.isEmpty()) {
return new LinkedList<>();
} else {
List<String> result = addStrings(current.subList(1, current.size()));
result.add("AA" + current.get(0));
result.add("BB" + current.get(0));
return result;
}
}
addStrings
方法执行与迭代相同的功能。我已经用列表替换了数组,使其更简单,但您可以轻松地转换回数组。