algo 1
dynamic programming + one dim vector
dp: dp[i][j] whether with length j match current substring of
of length i
the transformation equations follows as:
p[j-1] != '*' dp[i-1][j-1] && (s[i - 1] == dp[j - 1] || dp[j - 1] == ? )
p[j-1] == '*' dp[i][j - 1] || dp[i - 1][j]