在C++中打印长度为k的所有可能字符串,这些字符串可以由一组n个字符组成

在这个问题中,我们得到了一组字符和一个正整数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

以上是 在C++中打印长度为k的所有可能字符串,这些字符串可以由一组n个字符组成 的全部内容, 来源链接: utcz.com/z/322552.html

回到顶部