正規表示式匹配(未完成)

2021-10-21 15:12:22 字數 1030 閱讀 2844

請實現乙個函式用來匹配包含』. 『和』『的正規表示式。模式中的字元』.『表示任意乙個字元,而』'表示它前面的字元可以出現任意次(含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...