10. 正則表達(dá)式匹配(C++編程)【沒編出來】
給你一個字符串?s
?和一個字符規(guī)律?p
,請你來實(shí)現(xiàn)一個支持?'.'
?和?'*'
?的正則表達(dá)式匹配。
'.'
?匹配任意單個字符'*'
?匹配零個或多個前面的那一個元素
所謂匹配,是要涵蓋?整個?字符串?s
的,而不是部分字符串。
?
示例 1:
輸入:s = "aa", p = "a"輸出:false解釋:"a" 無法匹配 "aa" 整個字符串。
示例 2:
輸入:s = "aa", p = "a*"輸出:true解釋:因?yàn)?'*' 代表可以匹配零個或多個前面的那一個元素, 在這里前面的元素就是 'a'。因此,字符串 "aa" 可被視為 'a' 重復(fù)了一次。
示例?3:
輸入:s = "ab", p = ".*"輸出:true解釋:".*" 表示可匹配零個或多個('*')任意字符('.')。
?
提示:
1 <= s.length?<= 20
1 <= p.length?<= 30
s
?只包含從?a-z
?的小寫字母。p
?只包含從?a-z
?的小寫字母,以及字符?.
?和?*
。保證每次出現(xiàn)字符?
*
?時,前面都匹配到有效的字符
刷題代碼(僅通過了部分的測試用例)【題目中標(biāo)紅的那一句話不好理解,我沒理解來,代碼只能通過一部分的測試用例,具體的題解可自行百度,用的動態(tài)規(guī)劃的算法】
完整調(diào)試代碼(后續(xù)補(bǔ)充···)
標(biāo)簽: