gpt4 book ai didi

java - 创建递归方法的返回类型

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

我有以下递归方法,可以为给定字符串生成排列。我正在尝试为数组列表中生成的字符串创建返回类型,更具体地说,我正在尝试打印 jsp 页面中的输出。

 public static void permutation(String str) { 
permutation("", str);
}

private static void permutation(String prefix, String str) {
int n = str.length();
if (n == 0) System.out.println(prefix);
else {
for (int i = 0; i < n; i++)
permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i+ n));
}
}

最佳答案

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Permute {

public static void main(String[] args) {
System.out.println(findAllPermutations("abc"));
}

public static List<String> findAllPermutations(String s) {
if (s == null) {
throw new NullPointerException();
}
if (s.length() <= 1) {
return Arrays.asList(s);
}

List<String> permutations = new ArrayList<>();
for (String permutation : findAllPermutations(s.substring(1))) {
char ch = s.charAt(0);
for (int i = 0; i <= permutation.length(); i++) {
String prefix = permutation.substring(0, i);
String suffix = permutation.substring(i);
permutations.add(prefix + ch + suffix);
}
}
return permutations;
}
}

关于java - 创建递归方法的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25635696/

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