劍指offer 正規表示式匹配

2021-10-07 07:18:56 字數 656 閱讀 4925

題目

這個題目比較容易想到的解法是用遞迴,這裡講一下動態規劃的思路。

設原串s和匹配串p的長度分別為n和m,下面從串尾向前推。

若p[m-1]為普通字元且與s[n-1]相等,則看f[n-2][m-2]

若p[m-1]為』.』,則看f[n-2][m-2]

若p[m-1]為』*』:

*匹配0次,看f[n-1][m-3]

*匹配1次,看f[n-2][m-1](還可以繼續匹配)

特殊情況:

s、p都為空結果為true

僅有p為空結果為false

其餘情況需要按上述規則討論

下面是js實現正規表示式匹配的**:

/**

* @param s

* @param p

* @return

*/var

ismatch

=function

(s, p)

else

}else

if(i>0&&

(p[j-2]

==='.'

||p[j-2]

===s[i-1]

))}}

}}return ma[n]

[m];

};

劍指offer 正規表示式匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 abaca 匹配,但是與 aa.a 和 aba 均不匹配 由於只涉及兩種正規表示式的匹配,...

劍指Offer 正規表示式匹配

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

劍指offer 正規表示式匹配

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