劍指offer 正規表示式匹配

2021-09-26 05:32:59 字數 671 閱讀 3017

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

/*

1.字串或者模式為空,返回false。

2.推出遞迴條件:一是str到尾,pattern到尾,匹配成功,二是pattern先到尾,匹配失敗,三是不匹配

二是*表示前面的字元出現1次,模式後移兩個字元,字串後移乙個字元

三是*表示前面的字元出現1次以上,模式不動,字串後移乙個字元

4.當前字元下乙個不是*,且當前字元和模式匹配,字串和模式都向後移一位

*/class solution

bool matchcore(char* str, char* pattern)

if (*str == *pattern || (*pattern == '.' && *str != '\0')) //下乙個不是*,當前字元和模式匹配

return matchcore(str+1,pattern+1); //字串和模式都向後移一位

return false; //不匹配返回false

}};

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