劍指 62,正規表示式(有 無 )

2021-10-03 20:54:06 字數 765 閱讀 8062

題目描述

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

思路:首先,我們判斷是不是到了模式串的尾部,如果是,並且此時str原生串到了尾部,那麼返回真,否則返回假。

然後我們判斷此時的模式串的p的下乙個字元是不是 * ,因為這個會影響當前的匹配,所以他要先做。如果下乙個不是 即 p+1!=』』 ,,說明不用考慮當前個出現任意次,直接p和s當前比對。或模式串p位 . 且字串s不為『\0』,那就不說了,直接下乙個字元對比。否則,false;

但是如果p+1==『』了,說明當前的字元p可以多個或0.此時我們用while迴圈,p和s相等的話,或者p位『 . 』並且s!=『\0』了 : 此時判斷將此時的p往後移動兩個點(x*)後還真嗎,真就返回true,否則就將s++,繼續往後匹配,然後將p移動兩個位。

**:

class

solution

private

:bool

ismatch

(const

char

* s,

const

char

* p)

else

return

ismatch

(s,p+2)

}}

劍指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 均不匹配.分析 觀察模式串中第...