10 正規表示式匹配 力扣

2021-09-24 23:13:02 字數 583 閱讀 2252

題意理解

給頂乙個模式串,.表示匹配任意乙個字母,*表示重複0次或多次前面乙個字母。對於任乙個字串是否和模式串匹配。

問題分析

遞迴非.*情況逐個字母匹配即可

.看成乙個字母,直接匹配;

*比較複雜,按照語法說明,可以匹配0個前面字母,或1個,或多個情況

思路是 如果模式串第二個字元是*,那麼,模式串可以忽略掉前面那個字母和*,這樣的模式串匹配上也可以;還有一種情況是*前面的字母和原串第乙個字母匹配,源串去掉第乙個字母和完整模式串匹配也可以。 其他情況下,逐個匹配就好了。

其他遞迴是乙個好思路,好好理解,大有好處。

鏈結

bool ismatch(string s, string p) 

bool first_match = (!s.empty()) && ((s[0] == p[0]) || (p[0] == '.')); //第乙個字元一定存在,判斷是否相等,&& || 優先順序相同,括號必須加

if (p.size() >= 2 && p[1] == '*')

else

return false;

}

力扣10正規表示式匹配

def ismatch text,pattern bool if not pattern return not text first match bool text and pattern 0 in if len pattern 2 and pattern 1 return ismatch text...

力扣 困難 10 正規表示式匹配

給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。匹配任意單個字元 匹配零個或多個前面的那乙個元素 所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。說明 s 可能為空,且只包含從 a z 的小寫字母。p 可能為空,且只包含從 a z 的小寫字母,以及字元 和 示例...

力扣LeetCode 10 正規表示式匹配

給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。匹配任意單個字元 匹配零個或多個前面的那乙個元素 所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。說明 s 可能為空,且只包含從 a z 的小寫字母。p 可能為空,且只包含從 a z 的小寫字母,以及字元 和 示例...