इस समस्या में, हमें एक स्ट्रिंग दी गई है और हमें स्ट्रिंग के सभी उपअनुक्रम प्रिंट करने हैं। उपस्ट्रिंग तत्वों को हटाकर बनाई जाती है। साथ ही, स्ट्रिंग का क्रम बदला नहीं जाना चाहिए।
समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -
इनपुट: स्ट्रिंग = "xyz" आउटपुट: x y xy z xz yz xyz
इस समस्या को हल करने के लिए, हम स्ट्रिंग के पहले वर्ण को फ्रीज करके सभी उपस्ट्रिंग ढूंढेंगे और तदनुसार उपअनुक्रम ढूंढेंगे, फिर स्ट्रिंग में अगले वर्ण और उपअनुक्रम के लिए जाएंगे।
उदाहरण
public class Main { public static void printSubString(String sub,String subSeq){ if (sub.length() == 0) { System.out.print(subSeq+" "); return; } char ch = sub.charAt(0); String ros = sub.substring(1); printSubString(ros, subSeq); printSubString(ros, subSeq + ch); } public static void main(String[] args){ String str = "wxyz"; System.out.println("The subStrings are :"); printSubString(str, ""); } } आउटपुट
उपस्ट्रिंग हैं -
z y yz x xz xy xyz w wz wy wyz wx wxz wxy wxyz