题目描述
请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
示例1
输入
"aaa","a*a"
返回值
true
C++实现:解决了好久,需要考虑好多种情况
首先:
1.如果*str == *parttern 或者*parttern==‘.’,往下走
2.str=""和pattern=".*"返回true
3.*str != *parttern 但是*(parttern+1) == ‘*’即这个不相等的字符出现0次,那么就可以令parttern向后走两个位置
4.不好解决的情况,判断*重复前面对应字符的个数,比如“aaaab”与“aa*b”,中间的a就重复了3次。
5."bcbbabab",".*a*a" 和 "bbbbba",".*a*a"等情况
class Solution { public: bool match(char* str, char* pattern) { while(*str!='