10.Regular Expression Matching
DP解O(m*n)
Trick
用他給case去找條件狀況
沒有的話就自己設定條件
條件的寫法會影響解答的時空間效率
elif chp=='*' and dp[i+1][j-1]:
dp[i+1][j+1] = True
#會比下面快
elif chp=='*':
dp[i+1][j+1] = dp[i+1][j-1]
edge case
用counter儲存dict
ans_l, ans_r 起始值設為0(遇到invalid input就會直接回傳"")
need[] 針對每一個字母都減
但missing -= need[ch] > 0,只有當need[ch] > 0 時才去減missing,也就是只有當遇到指定字母才減去missing
注意順序,反了就錯了
missing -= need[ch] > 0
need[ch] -= 1
...
need[s[i]] += 1
i += 1
出去while以後還要更新一次need[], missing 和 l