給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 『.』 和 『*』 的正規表示式匹配。
『.』 匹配任意單個字元
『*』 匹配零個或多個前面的那乙個元素
分析:分兩種情況。p的最後乙個字元不是*,這種情況比較好處理,如果是 . 就一定沒問題因為可以匹配任意的字元,或者s[i - 1] == p[j - 1],這時就看前 i-1和 j-1的情況。
第二種情況是最後乙個字元是『』,可能是匹配零個字元,這時候f[i][j] = f[i][j - 2] 。或者匹配多個字元這時候 f[i][j] = f[i - 1][j].(這個地方只匹配前乙個就行,是因為這個如果匹配多個的話那麼前面的也是已經被匹配過得了)
class
solution
if(j ==0)
b[i]
[j]=
false;if
(s2[j -1]
!='*')}
else
if(i >0)
}}}return b[len1]
[len2];}
}
10 正規表示式匹配
implement regular expression matching with support for and matches any single character.matches zero or more of the preceding element.the matching sho...
10 正規表示式匹配
思路類似最長公共子串行,dp i j dp i 1 j 1 如果s i p j p j dp i j 2 如果p j s i p j 1 dp i 1 j dp i j 1 dp i 1 j 1 dp i 1 j 2 dp i j 2 如果p j s i p j 1 稍稍解釋下 對於s和p,設各個最...
10 正規表示式匹配
剛開始很奇怪為什麼這個題的標籤是困難,然後寫了出來發現我寫出來的只針對從頭到尾都一樣,而不是如示例4,可以匹配一部分。示例 4 輸入 s aab p c a b 輸出 true 解釋 因為 表示零個或多個,這裡 c 為 0 個,a 被重複一次。因此可以匹配字串 aab 只針對從頭到尾相同的字串的程式...