使用 Java 中的 ArrayList 打印字符串的所有排列
javaobject oriented programmingprogramming更新于 2025/8/11 15:40:17
在这个问题中,我们给定一个大小为 n 的字符串,我们必须打印该字符串的所有排列。但这次我们必须使用 ArrayList 打印此排列。
让我们举一个例子来理解这个问题 -
输入 − 字符串 = ‘XYZ’
输出 − XYZ、XZY、YXZ、YZX、ZXY、ZYX
为了解决这个问题,我们将生成字符串字符的所有排列。我们将使用递归函数并返回 arrayList。
示例
以下是算法的 ArrayList 实现 −
import java.util.ArrayList;
public class Main{
static void printArrayList(ArrayList<String> combo) {
combo.remove("");
for (int i = 0; i < combo.size(); i++)
System.out.print(combo.get(i)+"\t");
}
public static ArrayList<String> generatePermutation(String str) {
if (str.length() == 0) {
ArrayList<String> empty = new ArrayList<>();
empty.add("");
return empty;
}
char ch = str.charAt(0);
String subStr = str.substring(1);
ArrayList<String> lastCombination = generatePermutation(subStr);
ArrayList<String> newCombination = new ArrayList<>();
for (String val : lastCombination) {
for (int i = 0; i <= val.length(); i++) {
newCombination.add(val.substring(0, i) + ch + val.substring(i));
}
}
return newCombination;
}
public static void main(String[] args) {
String str = "NOPQ";
System.out.println("Permutations of string are :");
printArrayList(generatePermutation(str));
}
}
输出
Permutations of string are : NOPQ ONPQ OPNQ OPQN NPOQ PNOQ PONQ POQN NPQO PNQO PQNO PQON NOQP ONQP OQNP OQPN NQOP QNOP QONP QOPN NQPO QNPO QPNO QPON
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

