इस समस्या में, हमें n आकार की एक स्ट्रिंग दी जाती है और हमें स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करने होते हैं। लेकिन इस बार हमें इस क्रमपरिवर्तन को ArrayList का उपयोग करके प्रिंट करना होगा।
समस्या को समझने के लिए एक उदाहरण लेते हैं -
इनपुट − स्ट्रिंग ='XYZ'
आउटपुट - XYZ, XZY, YXZ, YZX, ZXY, ZYX
इस समस्या को हल करने के लिए, हम स्ट्रिंग के चरित्र के सभी क्रमपरिवर्तन उत्पन्न करेंगे। हम एक पुनरावर्ती फ़ंक्शन का उपयोग करेंगे और सरणी सूची लौटाएंगे।
उदाहरण
एल्गोरिदम का 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