এই সমস্যায়, আমাদেরকে একটি স্ট্রিং দেওয়া হয়েছে এবং আমাদের এটিকে সাবস্ট্রিংয়ে ভাঙ্গতে হবে এবং বন্ধনী বন্ধনীতে প্রিন্ট করতে হবে৷
সমস্যাটি আরও ভালোভাবে বোঝার জন্য কিছু উদাহরণ দেওয়া যাক,
Input : wxyz Output : (w) (x) (y) (z) (w) (x) (yz) (w) (xy) (z) (w) (xyz) (wx) (y) (z) (wx) (yz) (wxy) (z) (wxyz)
ব্যাখ্যা − আমরা স্ট্রিংটিকে সমস্ত সম্ভাব্য সাবস্ট্রিংয়ে ভেঙ্গে দেব। এবং প্রতিটি সাবস্ট্রিং বন্ধনী দিয়ে আবদ্ধ করুন।
এখন, যেহেতু আমরা সমস্যাটি বুঝতে পেরেছি, আসুন সমস্যার সমাধান তৈরি করি।
এখানে, আমরা সমস্যা সমাধানের জন্য পুনরাবৃত্তি ব্যবহার করব। আমরা দুটি প্যারামিটার ব্যবহার করব, একটি স্ট্রিং এর পরবর্তী অক্ষর এবং অন্যটি আউটপুট স্ট্রিং। প্রক্রিয়াবিহীন সাবস্ট্রিং ধীরে ধীরে প্রতিটি পুনরাবৃত্তিতে প্রক্রিয়া করা হবে। এবং উপসেট তৈরি করা হয়।
উদাহরণ
সমস্যা সমাধানের জন্য প্রোগ্রাম -
#include <iostream> using namespace std; void substring(string str, int index, string out){ if (index == str.length()) cout << out << endl; for (int i = index; i < str.length(); i++) substring(str, i + 1, out + "(" + str.substr(index, i+1-index) + ")" ); } int main(){ string str = "wxyz"; cout<<”The substring are :”<<endl; substring(str, 0, ""); return 0; }
আউটপুট
The substring are : (w)(x)(y)(z) (w)(x)(yz) (w)(xy)(z) (w)(xyz) (wx)(y)(z) (wx)(yz) (wxy)(z) (wxyz)