<garvit244>44_1.py
def isMatch( s, p):
    if len(p) == 0:
        return len(s) == 0
    
    dp = [[False for _ in range(len(p) + 1)] for _ in range(len(s) + 1)]
    dp[0][0] = True
    
    for index in range(1,len(dp[0])):
        if p[index-1] == '*':
            dp[0][index] = dp[0][index-1]
    
    for index_i in range(1, len(dp)):
        for index_j in range(1, len(dp[0])):
            if s[index_i - 1] == p[index_j - 1] or p[index_j - 1] == '?':
                dp[index_i][index_j] = dp[index_i-1][index_j-1]
            elif p[index_j-1] == '*':
                dp[index_i][index_j] = dp[index_i][index_j-1] or dp[index_i-1][index_j]
            else:
                dp[index_i][index_j] = False
    return dp[len(s)][len(p)]
def sample_funcname ( var_0 , var_1 ) :
    if len ( var_1 ) == 0 :
        return len ( var_0 ) == 0
    var_8 = [ [ False for var_5 in range ( len ( var_1 ) + 1 ) ] for var_5 in range ( len ( var_0 ) + 1 ) ]
    var_8 [ 0 ] [ 0 ] = True
    for var_10 in range ( 1 , len ( var_8 [ 0 ] ) ) :
        if var_1 [ var_10 - 1 ] == '*' :
            var_8 [ 0 ] [ var_10 ] = var_8 [ 0 ] [ var_10 - 1 ]
    for var_12 in range ( 1 , len ( var_8 ) ) :
        for var_13 in range ( 1 , len ( var_8 [ 0 ] ) ) :
            if var_0 [ var_12 - 1 ] == var_1 [ var_13 - 1 ] or var_1 [ var_13 - 1 ] == '?' :
                var_8 [ var_12 ] [ var_13 ] = var_8 [ var_12 - 1 ] [ var_13 - 1 ]
            elif var_1 [ var_13 - 1 ] == '*' :
                var_8 [ var_12 ] [ var_13 ] = var_8 [ var_12 ] [ var_13 - 1 ] or var_8 [ var_12 - 1 ] [ var_13 ]
            else :
                var_8 [ var_12 ] [ var_13 ] = False
    return var_8 [ len ( var_0 ) ] [ len ( var_1 ) ]
