Question
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?
Answer: Option A
Was this answer helpful ?
The following lines should be added:
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];
Was this answer helpful ?
Submit Solution