請實現乙個函式用來匹配包含』. 『和』『的正規表示式。模式中的字元』.『表示任意乙個字元,而』'表示它前面的字元可以出現任意次(含0次)。在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串"aaa"與模式"a.a"和"abaca"匹配,但與"aa.a"和"ab*a"均不匹配。
示例 1:
輸入:s = 「aa」
p = 「a」
輸出: false
解釋: 「a」 無法匹配 「aa」 整個字串。
示例 2:
輸入:s = 「aa」
p = 「a*」
輸出: true
解釋: 因為 『*』 代表可以匹配零個或多個前面的那乙個元素, 在這裡前面的元素就是 『a』。因此,字串 「aa」 可被視為 『a』 重複了一次。
示例 3:
輸入:s = 「ab」
p = 「."
輸出: true
解釋: ".」 表示可匹配零個或多個(』*』)任意字元(』.』)。
示例 4:
輸入:s = 「aab」
p = 「cab」
輸出: true
解釋: 因為 『*』 表示零個或多個,這裡 『c』 為 0 個, 『a』 被重複一次。因此可以匹配字串 「aab」。
示例 5:
輸入:s = 「mississippi」
p = 「misisp*.」
輸出: false
s 可能為空,且只包含從 a-z 的小寫字母。
p 可能為空,且只包含從 a-z 的小寫字母以及字元 . 和 ,無連續的 '』。
20210309未解出
只是使用for if else 有太多的問題
1.「aaa」 「aaaa」和.「aaa」 「a*a「在匹配完成到乙個剩餘「a」,乙個剩餘「*a」
2.如果s尾部是超過1位的,那就表示需要陣列儲存,不可能比較出來
20210310更新
將前面處理完成後,應該按照從後往前和原字串比較,實際上按照參考思路來說,整體都應該按照動態規劃思想從後往前分解,這是現在的思路,有待更新。
Linux 正規表示式(未完成)
如題 nailwl nailwl dict egrep a.t usr share words awhet awkwardest awlwort awrist axillant axiologist axonost axwort ayenst aye sought aylet ayont azilu...
括號匹配(未完成)
寫了乙個小時,想模擬一下。結果考慮了很多地方,到最後還是有個地方無法解決,就是 只需要新增乙個 即可,但是我的卻無法判斷str i 以後的字元,因為我的只能判斷str i 以前的元素,在更新str i k 的時候,無法判斷str i 是否可以通過改變str i k 達到更優。所以必須在判斷str i...
正規表示式 匹配
字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...