################################################################# ## CS 3600 (Winter 2027), Programming Problem #2 ## ## Program File Name: myMSRClasses.py ## ## Student Name: Todd Wareham ## ## Login Name: harold ## ## MUN #: 8008765 ## ################################################################# ## Provided classes for Programming Problem #2. ## ## *** DO NOT CHANGE THE CODE IN THIS FILE *** ## ## MSR class; this class contains both a specification of the given instance of ## the MSR problem (namely, lower-case alphabetical strings s1 and s2) and the ## value and backpointer matrices ((|s1| + 1) x (|s2| + 1) integer matrix M ## and |s1| x |s2| integer matrix B) associated with the solution of this ## instance by dynamic propgramming. ## Attributes: ## char[] s1, s2 ## int[][] M, B class MSR: def __init__(self, filename): f = open(filename, "r+") self.s1 = (f.readline().split("=")[1]).strip() self.s2 = (f.readline().split("=")[1]).strip() f.close() self.M = [] self.B = [] for i in range(len(self.s1) + 1): temp = [0.0 for j in range(len(self.s2) + 1)] self.M.append(temp) temp = [0 for j in range(len(self.s2) + 1)] self.B.append(temp) def getS1(self): return(self.s1) def getS2(self): return(self.s2) def getMatrixM(self): return(self.M) def getMatrixB(self): return(self.B) def setMatrixM(self, M): self.M = M def setMatrixB(self, B): self.B = B def printMatrices(self): print("DP Value Matrix (M):\n\n S2 ", end="") for j in range(len(self.s2)): print(" {0:1s} ".format(self.s2[j]), end = "") print("\n\n ", end="") for j in range(len(self.s2) + 1): print(" {0:3d} ".format(j), end = "") print("\n S1") for i in range(len(self.s1) + 1): if (i == 0): print(" {0:3d}: ".format(i), end="") else: print(" {0:1s} {1:3d}: ".format(self.s1[i-1], i), end="") for j in range(len(self.s2) + 1): print(" {0:5.2f}".format(self.M[i][j]), end="") print() print("\nDP Backpointer Matrix (B):\n\n S2 ", end="") for j in range(len(self.s2)): print(" {0:1s} ".format(self.s2[j]), end = "") print("\n\n ", end="") for j in range(len(self.s2) + 1): print(" {0:3d}".format(j), end = "") print("\n S1") for i in range(len(self.s1) + 1): if (i == 0): print(" {0:3d}: ".format(i), end="") else: print(" {0:1s} {1:3d}: ".format(self.s1[i-1], i), end="") for j in range(len(self.s2) + 1): print(" {0:3d}".format(self.B[i][j]), end="") print()