class Solution: def isMatch(self , s: str, p: str) -> bool: # write code here m = len(s) n = len(p) dp = [[0]*(n+1) for i in range(m+1)] dp[0][0] = 1 for j in range(1,n+1): if p[j-1] =='*': dp[0][j] = 1 else: break for i in range(1,m+1): for j in range(1,n+1): if p[j-1] == '*': dp[i][j] = dp[i][j-1] or dp[i-1][j] elif p[j-1]==s[i-1] or p[j-1]=='?': dp[i][j]=dp[i-1][j-1] return dp[m][n]