এই সমস্যায়, আমাদের একটি স্ট্রিং দেওয়া আছে এবং আমাদের সেটি স্ট্রিংয়ের ক্যারেক্টারগুলোর মাঝপথে স্পেস বসিয়ে তৈরি হওয়া সব স্ট্রিং প্রিন্ট করতে হবে।
একটি উদাহরণ নিয়ে টপিকটি ভালোভাবে বুঝতে চাই −
Input: string = ‘XYZ’ Output: XYZ, XY Z, X YZ, X Y Z
এই সমস্যা সমাধানের জন্য, আমাদের স্পেস বসানোর সব সম্ভাব্য উপায় বের করতে হবে। এর জন্য আমরা রিকার্শন ব্যবহার করব। এতে, আমরা একে একে স্পেস বসিয়ে নতুন স্ট্রিং জেনারেট করব।
উদাহরণ
#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