10 正規表示式匹配

2021-10-24 15:52:56 字數 331 閱讀 9576

題目鏈結

對於該題,最簡單的解法應該是動態規劃。對於具體思路網上的解答很多。答題思路就是設定乙個二維陣列,第i,j位置代表p的前i個字元子串與s的前j個字元子串是否匹配。對於具體遞推公式這兒不再贅述。

但是我們需要注意一點。對於乙個m長的p和n長的q。我們需要設定的二維陣列大小為m+1,n+1(二維陣列行列可互換,即行代表p或s皆可)。為什麼要加1,是因為對於m長的p,我們需要考慮p的空子串。即需要考慮s匹配空的情況。同理,我們需要考慮s為空,可以匹配p的情況。舉個栗子,我們需要考慮s為空,可以匹配p為.*的情況。

之前一直覺得動態規劃初始條件很好寫,經過這道題發現,原來有些題的初始條件並不好寫。。

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 只針對從頭到尾相同的字串的程式...