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

C++でn文字のセットから形成できる長さkのすべての可能な文字列を出力します


この問題では、文字のセットと正の整数kが与えられ、セットの文字を使用して生成できる長さkのすべての可能な文字列を出力する必要があります。

>

問題をよりよく理解するために例を見てみましょう-

Input: set = {‘x’, ‘y’, ‘z’} , k = 2
Output: xy, xz, yz

この問題を解決するには、生成できる可能性のあるすべてのシーケンスを見つける必要があります。サイズnのセットの場合、長さkの可能な文字列の総数はn k になります。 (n ^ k)。再帰呼び出しを使用して、空の文字列から開始し、文字ごとに追加する文字列を生成します。

#include <bits/stdc++.h>
using namespace std;
void printKLengthString(char set[], string sequence, int n, int k) {
   if (k == 0){
      cout<<sequence<<"\t";
      return;
   }
   for (int i = 0; i < n; i++){
      string newSequence;
      newSequence=sequence+set[i];
      printKLengthString(set, newSequence, n, k - 1);
   }
}
int main() {
   char set[] = {'a', 'b'};
   int n = 2;
   int k = 3;
   printKLengthString(set, "", n, k);
}

出力

aaa aab aba abb baa bab bba bbb

  1. C++でリーフノードから距離kにあるすべてのノードを出力します

    この問題では、二分木と数Kが与えられます。葉のノードからkの距離にある木のすべてのノードを印刷する必要があります。 二分木 は、各ノードに最大2つのノード(1/2 /なし)がある特別なツリーです。 リーフノード 二分木のは、ツリーの最後にあるノードです。 この問題では、リーフノードからの距離はリーフノードよりも高いレベルのノードです。レベル4のリーフノードから距離2のノードがレベル2になるとします。 問題を理解するために例を見てみましょう K =2 出力 − 6 9. この問題を解決するために、ツリーをトラバースします。すべては、リーフノードに到達するレベルごとにすべて

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

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