Table of Contents
Given a list of word lists, write a functions to print all possible sentences one by one by taking one word from each list
Example
INPUT
s[][] = {{“I”, “You”}, {“love”,”hate”},{“programming”}}
OUTPUT
“I love programing”
“I hate programming”
“You love programming”
“You hate Prrogramming”
Algorithm
1. Cosider every word in the first list as the first word in output sentence
2. Now, recur for remaining lists
C++ Program
#include <iostream> #include <string> #define R 3 #define C 3 using namespace std; void printUtil(string arr[R][C], int m, int n, string result[R]) { // Add current word to result array result[m] = arr[m][n]; // If it is the last word, then print if (m==R-1) { for (int i=0; i<R; i++) { cout << result[i] << " "; } cout << endl; return; } // Recur for next row for (int i=0; i<C; i++) { if (arr[m+1][i] != "") { printUtil(arr, m+1, i, result); } } } // Considers all words in first row and prints void printAllSentences(string arr[R][C]) { // Create an array to store sentence string result[R]; //Consider all words in first row for (int i=0; i<C; i++) { if (arr[0][i] != "") { printUtil(arr, 0, i, result); } } } int main() { string arr[R][C] = {{"I", "You"}, {"love","hate"},{"programming"}}; printAllSentences(arr); return 0; }