使用 ArrayList 在 Java 中打印字符串的所有排列
在这个问题中,我们给定一个大小为 n 的字符串,我们必须打印出字符串的所有排列。但这次我们必须使用 ArrayList 来打印此排列。
我们举一个例子来理解这个问题 -
输入 − string = ‘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
广告