題目:實(shí)現(xiàn)一個(gè)正則表達(dá)式匹配函數(shù)惫叛。該正則表達(dá)式支持'.'和'*'。其中'.'匹配任意的單個(gè)字符逞刷,'*'匹配0個(gè)或多個(gè)前一個(gè)字符嘉涌。函數(shù)參數(shù)為兩個(gè)字符串s和p,如果s可以被p完全匹配夸浅,則返回true仑最,否則返回false。
1帆喇、如果p為空字符串警医,則直接判斷s是否為空即可;
2坯钦、p不為空预皇,且p只包含一個(gè)字符,完全匹配的條件為s與p相等或者s只包含一個(gè)字符婉刀,且p[0]=='.'吟温;3、p.size()>=2且p[1]=='*'突颊,因?yàn)?*'匹配0個(gè)或多個(gè)前一個(gè)字符鲁豪,所以s與p是否匹配可以轉(zhuǎn)換為:(1)s與p.substr(2)是否匹配,這時(shí)'*'匹配0個(gè)前一個(gè)字符律秃;(2)s.substr(1)與p是否匹配爬橡,這時(shí)'*'匹配多個(gè)前一個(gè)字符(前提條件是s[0]與p[0]匹配);
4棒动、p.size()>=2且p[1]!='*'糙申,完全匹配的條件為s不為空,s[0]與p[0]匹配且s.substr(1)與p.substr(1)匹配船惨。