gpt4 book ai didi

java - 是否可以使用不同的返回和参数类型进行递归

转载 作者:行者123 更新时间:2023-12-01 17:49:30 26 4
gpt4 key购买 nike

我有一个方法签名,其中返回类型是字符串数组,参数是字符串。我必须将传递给该方法的字符串分解为长度为 3 的子字符串,并返回一个包含所有子字符串作为元素的数组。这也可以递归地完成。

但是,我给出的方法签名的返回类型与参数不同,因此递归是否可以在这些条件下工作:

private String[] substrings(String string) {...

最佳答案

当然是这样,为什么不呢?参数类型和返回类型没有关系。

这是一个事件处理器的示例,它甚至没有返回类型:

void processEvent(Event e) {
// do something with the event

processEvent(getNextEvent())
}

processEvent(getNextEvent());

这是一个斐波那契数列生成器的示例,它具有不同的参数(数字)和返回(数字数组)类型:

long[] fibonacci(long n) {
if (n == 0) return new long[] { 1 };
if (n == 1) return new long[] { 1, 1 };

long[] a = fibonacci(n);
long[] b = fibonacci(n-1);

long[] both = Arrays.copyOf(a, a.length + b.length);
return System.arraycopy(b, 0, both, a.length, b.length);
}

对于您的示例,它看起来像这样:

// Pseudocode only !!!
String[] substrings(String s) {
if (s.size <= 3) return new String[] { s };
return (new String[] { s.slice(0, 3) }).concat(substrings(s.slice(3)));
}

关于java - 是否可以使用不同的返回和参数类型进行递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60820521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com