每日一題 101 正規表示式匹配(動歸 遞迴)

2021-10-09 17:00:52 字數 1440 閱讀 6226

給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 『.』 和 『*』 的正規表示式匹配。

所謂匹配,是要涵蓋整個字串 s的,而不是部分字串。

說明:

示例 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 ="c*a*b"

輸出:true

解釋: 因為 '*' 表示零個或多個,這裡 'c' 為 0 個,

'a' 被重複一次。因此可以匹配字串 "aab"。

示例 5:

輸入:

s ="mississippi"

p ="mis*is*p*."

輸出:false

複雜度分析:

**實現:

class

solution

}return dp[n]

[m];}}

;

**實現:

bool

ismatch

(char

* str,

char

* pattern)

else

return

ismatch

(str, pattern+2)

;}if(

*str ==

*pattern ||

*pattern ==

'.'&&

*str !=

'\0'

)return

ismatch

(str+

1, pattern+1)

;return

false

;}

正規表示式匹配題

給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。匹配任意單個字元 匹配零個或多個前面的那乙個元素 輸入 s aa p a 輸出 true 思路 i,j 分別是s,p的遍歷下標,dp i j 表示s i 和p j 是否匹配。普通字元和 字元都很好處理,匹配就從dp i ...

正規表示式匹配題

preg match 正規表示式,匹配的字串 匹配第乙個匹配正則的子字串,未找到返回0,找到返回 1trim get id 接受id傳參過來的字串 if 1 執行 if 0 不執行 die 輸出一條訊息,並退出當前指令碼。該函式是 exit 函式的別名。解題思路 本題需要匹配的字串的字串符合正規表示...

刷題 正規表示式匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 基本思路 遞迴,根據模式中...