Computer >> Máy Tính >  >> Lập trình >> C ++

In tất cả các chuỗi có thể có được bằng cách đặt dấu cách trong C ++


Trong bài toán này, chúng ta được cung cấp một chuỗi và chúng ta phải in tất cả những chuỗi đó có thể được tạo ra bằng cách sử dụng chuỗi này bằng cách đặt khoảng trắng giữa các ký tự của chuỗi.

Hãy lấy một ví dụ để hiểu rõ hơn về chủ đề -

Input: string = ‘XYZ’
Output: XYZ, XY Z, X YZ, X Y Z

Để giải quyết vấn đề này, chúng ta sẽ phải tìm tất cả các cách có thể để chúng ta có thể đặt khoảng trắng trong chuỗi. Đối với điều này, chúng tôi sẽ sử dụng đệ quy. Trong phần này, chúng tôi sẽ đặt từng khoảng trắng và tạo một chuỗi mới.

Ví dụ

#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;
}

Đầu ra

Chuỗi được tạo bằng cách sử dụng dấu cách là -

XYZ
XY Z
X YZ
X Y Z