gpt4 book ai didi

java - 创建 n 大小的排列

转载 作者:行者123 更新时间:2023-12-02 23:58:16 25 4
gpt4 key购买 nike

我目前正在尝试创建一种方法,该方法将采用字符串和数字,然后打印字符串的所有排列(即数字的大小)。例如, permutation("barn", 3) 将打印“bar”、“rab”、“arn”等。到目前为止,我有这个方法可以正确打印字符串的所有排列:

public 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+1, n));
}

现在我只需要实现限制每个排列大小的函数,但我不知道该怎么做。任何帮助将不胜感激!

最佳答案

您只需向该方法添加一个长度参数,并在达到该长度后打印前缀:

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

现在,如果你执行

permutation("","barn",3);

你得到:

bar
ban
bra
brn
bna
bnr
abr
abn
arb
arn
anb
anr
rba
rbn
rab
ran
rnb
rna
nba
nbr
nab
nar
nrb
nra

关于java - 创建 n 大小的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59818522/

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