Regular Expression Matching
問題簡介:給定字符串,給定匹配模式,判斷字符串是否滿足匹配模式
問題詳解:一共有兩種特殊模式:
‘.’ 匹配任何單個字符
‘*’ 匹配前面元素的零個或多個
注:匹配的是整個給定字符串,不是部分
舉例:
1:
輸入:
s = “aa”
p = “a”
輸出: false
解釋: “a” 不匹配 “aa”.
2:
輸入:
s = “aa”
p = “a*”
輸出: true
解釋: ‘*’ 代表 0 或多個字符 ‘a(chǎn)’
3:
輸入:
s = “ab”
p = “."
輸出: true
解釋: ".” 代表 0 或多個任意字符
4:
輸入:
s = “aab”
p = “cab”
輸出: true
5:
輸入:
s = “mississippi”
p = “misisp*.”
輸出: false
解法一:遞歸
先判斷輸入模式,當(dāng)模式為空時,只判斷輸入文本是否為空即可
將輸入文本與模式逐字符匹配,當(dāng)碰到特殊符號’.‘時相當(dāng)于匹配任何字符,碰到’*'時則改變字符串進(jìn)入遞歸下一次判斷

解法二:Dynamic Programming
進(jìn)行解法一的遞歸,我們采取緩存中間結(jié)果來節(jié)省建立字符串的空間

小白刷題之路,請多指教— — 要么大器晚成,要么石沉大海
