এই সমস্যায়, একটি স্ট্রিং দেওয়া থাকে এবং আমাদের স্ট্রিংয়ের সব সাবসিকোয়েন্স প্রিন্ট করতে হবে। সাবস্ট্রিংটি এলিমেন্ট ডিলিট করে তৈরি হয়। এছাড়া স্ট্রিংয়ের অর্ডার পরিবর্তন করা যাবে না।
উদাহরণ দিয়ে বুঝি:
ইনপুট: string = “xyz” আউটপুট: x y xy z xz yz xyz
এই সমস্যাটি সমাধান করতে, আমরা স্ট্রিংয়ের প্রথম ক্যারেক্টার ফ্রিজ করে সব সাবস্ট্রিং খুঁজে বের করব এবং সাবসিকোয়েন্স অনুযায়ী করব, তারপর স্ট্রিংয়ের পরবর্তী ক্যারেক্টারের জন্য সাবসিকোয়েন্স করব।
C++ উদাহরণ
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