C ++
 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)

説明 −文字列をすべての可能なサブ文字列に分割します。そして、各部分文字列を括弧で囲みます。

問題を理解したので、問題の解決策を作成しましょう。

ここでは、再帰を使用して問題を解決します。 2つのパラメーターを使用します。1つは文字列の次の文字で、もう1つは出力文字列です。未処理の部分文字列は、各反復でゆっくりと処理されます。そしてサブセットが作成されます。

問題を解決するためのプログラム-

#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)

  1. 特定の文字列のすべてのサブ文字列をC++で出力するプログラム

    このチュートリアルでは、特定の文字列のすべての部分文字列を出力するプログラムについて説明します。 このために、文字列または文字の配列が提供されます。私たちのタスクは、その特定の文字列のすべてのサブ文字列を出力することです。 例 #include<bits/stdc++.h> using namespace std; //printing all the substrings void print_substr(char str[], int n){    for (int len = 1; len <= n; len++){    

  2. マトリックスをZ形式で印刷するC++プログラム?

    ここでは、行列要素をZ形式で印刷する方法を説明します。したがって、配列が次のようになっている場合- 5 8 7 1 2 3 6 4 1 7 8 9 4 8 1 5 次に、次のように印刷されます:5、8、7、1、6、7、4、8、1、5 アルゴリズム printMatrixZ(mat) Begin    print the first row    i := 1, j := n-2    while i < n and j >= 0, do       print mat[i, j] &nb