題目:請實現乙個函式用來匹配包括』.』和』『的正規表示式。模式中的字元』.』表示任意乙個字元,而』『表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串」aaa」與模式」a.a」和」ab*ac*a」匹配,但是與」aa.a」和」ab*a」均不匹配
思路:在比較匹配字串和模式字串的時候,判斷某個字串時,
1、如果字串的字元不為」\0」(最後乙個字元),而模式串的字元為」\0」,這時是不匹配
2、如果字串的字元為」\0」,模式串的字元也為」\0」,這時是匹配
3、如果字串的字元為」\0」,而模式串的字元不為」\0」,這時是無法判斷的,為什麼呢?比如字串為」「,而模式串為」.「,因為 *可以表示為0次,
4、如果模式字串是』.』,那麼只需要字串和模式串同時後移一位即可
5、如果模式字串是』*』,那麼有3種小情況:
1)字串往後移一位,模式串不動 (任意次)
2)字串往後移一位,模式串往後移兩位 (1次)
3)字串不動,模式串往後移兩位 (0次)
/*
題目:正規表示式匹配
思路:在比較匹配字串和模式字串的時候,判斷某個字串時,
1、如果模式字串是'.',那麼只需要字串和模式串同時後移一位即可
2、如果模式字串是'*',那麼有3種小情況,1)字串往後移一位,模式串不動 (任意次)
2)字串往後移一位,模式串往後移兩位 (1次)
3)字串不動,模式串往後移兩位 (0次)
*/class solution
if(*str != '\0' && *pattern == '\0')
if(*(pattern+1) == '*')
else
}if( (*pattern == '.' || *str == *pattern) && *str != '\0' )
return
false;
}};
劍指offer 面試題53 正規表示式匹配
題目 請實現乙個函式用來匹配包含 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 匹配,但與 aa.a 及 ab a 均不匹配。思路 我們從頭遍歷字串與模式,如果第乙個字串...
劍指offer 面試題53 正規表示式匹配
劍指offer 面試題53 正規表示式匹配 題目 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 abaca 匹配,但是與 aa.a 和 ...
劍指offer面試題7
面試題7 用兩個棧實現佇列 using namespace std template class cqueue 預備知識 佇列 佇列也是一種常見的資料結構 特點是先進先出 fifo 在stl中有stack和queue兩個容器 template class stack 成員函式 empty size ...