Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 공백을 넣어 만들 수 있는 모든 문자열을 인쇄합니다.


이 문제에서 문자열이 주어지고 문자열의 문자 사이에 공백을 넣어 이 문자열을 사용하여 만들 수 있는 모든 문자열을 인쇄해야 합니다.

주제를 더 잘 이해하기 위해 예를 들어 보겠습니다 -

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