Consider two bit sequences, X and Y. Devise a bottom-up dynamic programming algorithm through the sequence of questions given below to find the number of times Y appears as a subsequence of X.
(a) [3 points] Let T be a 2-dimensional table to keep track of the number of such sequences. What does a single entry T[i, j] in the table T represent?
(b) [12 points] If i=0 or j=0, then T[i,j]=0. If j=0, then T[i,j]=1. If i=0, then T[i,j]=0. What is the recursion formula for T[i,j] for all other cases? Clearly indicate each case. Explain the details of your recursion formula.
(c) [10 points] Give a bottom-up dynamic programming algorithm in pseudocode for solving the problem above.
(d) [3 points] Explain the time complexity of your algorithm.
(e) [2 points] Explain the space complexity of your algorithm.