Vidyalelo
Data Structure · Q170

Dynamic Programming in Data Structures

Programming · Data Structure · question 170

Q170

Consider the following dynamic programming implementation of the boolean parenthesization problem: int count_bool_parenthesization(char *sym, char *op) int str_len = strlen(sym); int True[str_len][str_len],False[str_len][str_len]; int row,col,length,l; for(row = 0, col = 0; row < str_len; row++,col++) if(sym[row] == 'T') True[row][col] = 1; False[row][col] = 0; else True[row][col] = 0; False[row][col] = 1; for(length = 1; length < str_len; length++) for(row = 0, col = length; col < str_len; col++, row++) True[row][col] = 0; False[row][col] = 0; for(l = 0; l < length; l++) int pos = row + l; int t_row_pos = True[row][pos] + False[row][pos]; int t_pos_col = True[pos+1][col] + False[pos+1][col]; if(op[pos] == '|') _______________; if(op[pos] == '&') _______________; if(op[pos] == '^') _______________; return True[0][str_len-1]; Which of the following lines should be added to complete the "if(op[pos] == '|')" part of the code?

A.
False[row][col] += True[row][pos] * False[pos+1][col];
True[row][col] += t_row_pos * t_pos_col + False[row][pos] * False[pos+1][col];
B.
False[row][col] += False[row][pos] * True[pos+1][col];
True[row][col] += t_row_pos * t_pos_col - True[row][pos] * True[pos+1][col];
C.
False[row][col] += True[row][pos] * True[pos+1][col];
True[row][col] += t_row_pos * t_pos_col + True[row][pos] * True[pos+1][col];
D.
False[row][col] += False[row][pos] * False[pos+1][col];
True[row][col] += t_row_pos * t_pos_col - False[row][pos] * False[pos+1][col];
Answer

Answer: Option D

Solution

Answer: Option D
No explanation is given for this question Let's Discuss on Board