递归打印可以从 C++ 中的单词列表列表形成的所有句子

给出一个单词列表。目标是创建所有可能的句子,这些句子可以通过使用递归方法从列表中取出单词来形成。您一次只能从两个列表中选取一个词。

让我们看看这个的各种输入输出场景

输入 -

sentence[row][col] = {{"I", "You"},

   {"Do", "do not like"},

   {"walking", "eating"}}

输出   -

I Do walking

I Do eating

I like walking

I like eating

You Do walking

You Do eating

You like walking

You like eating

说明- 从句子 [0-2] 中的每个列表中取出一个词给出上述句子。

输入 -

sentence[row][col] = {{"work", "live"},{"easy", "happily"}}

输出 -

work easy

work happily

live easy

live happily

说明- 从句子 [0-1] 中的每个列表中取出一个词给出上述句子。

  • 将字符串类型的二维数组声明为 sentence[row][col]。将数据作为 传递给函数Recursive_Print(sentence)。

  • 在函数内部为 Recursive_Print(sentence)

    • 创建一个字符串类型的数组作为 arr[row]。

    • 从 i 到 0 开始循环 FOR,直到 i 小于 col。在循环内,检查 IF 语句 [0][i] 不为空,然后调用函数作为 Recursion(sentence, 0, i, arr)。

  • 在函数内部作为 Recursion(string sentence[row][col], int temp_1, int temp_2, string arr[row])

    • 将 arr[temp_1] 设置为句子 [temp_1][temp_2]。

    • 检查 IF temp_1 is row - 1 然后开始循环 FOR 从 i 到 0 直到 i 小于行。在循环内,打印 arr[i]。

    • 从 i 到 0 开始循环 FOR,直到 i 小于 col。在循环内,检查 IF 语句 [temp_1+1][i] 不等于空间,然后递归调用该函数作为 Recursion(sentence, temp_1+1, i, arr)。

  • 打印结果。

下面程序中使用的方法如下

示例

#include<bits/stdc++.h>

#define row 3

#define col 3

using namespace std;

void Recursion(string sentence[row][col], int temp_1, int temp_2, string arr[row]){

   arr[temp_1] = sentence[temp_1][temp_2];

   if(temp_1 == row - 1){

      for(int i=0; i < row; i++){

         cout << arr[i] << " ";

      }

      cout << endl;

      return;

   }

   for(int i=0; i < col; i++){

      if(sentence[temp_1+1][i] != ""){

         Recursion(sentence, temp_1+1, i, arr);

      }

   }

}

void Recursive_Print(string sentence[row][col]){

   string arr[row];

   for(int i=0; i < col; i++){

      if(sentence[0][i] != ""){

         Recursion(sentence, 0, i, arr);

      }

   }

}

int main(){

   string sentence[row][col] = {{"Ajay", "sanjay"},{"Like", "is"},{"Reading", "eating"}};

   Recursive_Print(sentence);

   return 0;

}

输出结果

如果我们运行上面的代码,它将生成以下输出

Ajay Like Reading

Ajay Like eating

Ajay is Reading

Ajay is eating

sanjay Like Reading

sanjay Like eating

sanjay is Reading

sanjay is eating

以上是 递归打印可以从 C++ 中的单词列表列表形成的所有句子 的全部内容, 来源链接: utcz.com/z/345693.html

回到顶部