題目
這個題目比較容易想到的解法是用遞迴,這裡講一下動態規劃的思路。
設原串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 均不匹配.分析 觀察模式串中第...