2个字符串之间的所有可能性递归

时间:2015-09-17 12:05:42

标签: java recursion

我正在尝试创建一个递归方法,它将返回一个String数组,其中包含两个字符串的所有可能性。

1 个答案:

答案 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方法执行与迭代相同的功能。我已经用列表替换了数组,使其更简单,但您可以轻松地转换回数组。