使用 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP