C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でスペースを配置することによって作成できるすべての可能な文字列を印刷します


この問題では、文字列が与えられ、文字列の文字の間にスペースを入れて、この文字列を使用して作成できるすべての文字列を印刷する必要があります。

トピックをよりよく理解するために例を見てみましょう-

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

この問題を解決するには、文字列にスペースを入れることができるすべての可能な方法を見つける必要があります。このために、再帰を使用します。ここでは、スペースを1つずつ配置して、新しい文字列を生成します。

#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

  1. C++で配列の文字を使用して可能なすべての有効な単語を出力します

    この問題の場合、単語のセットと文字の配列が与えられ、配列の文字を使用して単語が可能かどうかを確認する必要があります。 問題をよりよく理解するために例を見てみましょう- Input : words[] : {‘go’ , ‘hi’ , ‘run’ , ‘on’ , ‘hog’ , ‘gone’}    Char[] : {‘a’ , ‘o’ , ‘h’ , &l

  2. C++の辞書で特定のパターンに一致するすべての文字列を検索します

    辞書と呼ばれる文字列のリストがあると考えてください。別のパターン文字列があります。私たちの仕事は、パターンに一致する文字列を見つけることです。辞書が[“ abb”、“ xyz”、“ aab”、“ kmm”]のようで、パターンが“ stt”であるとすると、結果は“ abb”、“ kmm”になります。パターンには最初に1つの文字があり、次に2つの同じ文字があるため、同じパターン文字列に従います。 この問題を解決するために、パターンに一致する辞書の単語がエンコード後のパターンと同じハッシュを持つように、パターンをエンコードします。辞書内のすべての単語を繰り返し処理し、ハッシュが同じ場所に表示します