এই সমস্যায়, আমাদের একটি স্ট্রিং দেওয়া হয়েছে এবং স্ট্রিংটির অক্ষরগুলির মধ্যে স্থান রেখে এই স্ট্রিং ব্যবহার করে তৈরি করা যেতে পারে এমন সমস্ত স্ট্রিং প্রিন্ট করতে হবে৷
বিষয়টি আরও ভালোভাবে বোঝার জন্য একটি উদাহরণ নেওয়া যাক -
Input: string = ‘XYZ’ Output: XYZ, XY Z, X YZ, X Y Z
এই সমস্যাটি সমাধান করার জন্য, আমাদের সম্ভাব্য সমস্ত উপায় খুঁজে বের করতে হবে যাতে আমরা স্ট্রিংটিতে স্থান রাখতে পারি। এই জন্য আমরা recursion ব্যবহার করব. এতে, আমরা একটি করে স্পেস স্থাপন করব এবং একটি নতুন স্ট্রিং তৈরি করব।
উদাহরণ
#include <iostream> #include <cstring> using namespace std; void printPattern(char str[], char buff[], int i, int j, int n){ if (i==n){ buff[j] = '\0'; cout << buff << endl; return; } buff[j] = str[i]; printPattern(str, buff, i+1, j+1, n); buff[j] = ' '; buff[j+1] = str[i]; printPattern(str, buff, i+1, j+2, n); } int main() { char *str = "XYZ"; int n = strlen(str); char buf[2*n]; buf[0] = str[0]; cout<<"The string generated using space are :\n"; printPattern(str, buf, 1, 1, n); return 0; }
আউটপুট
স্থান ব্যবহার করে তৈরি করা স্ট্রিং হল −
XYZ XY Z X YZ X Y Z