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

C++에서 대괄호 형식으로 문자열을 끊는 모든 방법 인쇄


이 문제에서는 문자열이 주어지며 이를 부분 문자열로 나누고 괄호를 묶어 출력해야 합니다.

문제를 더 잘 이해하기 위해 몇 가지 예를 들어보겠습니다.

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)