首页 > 代码库 > 剑指offer---正则表达式匹配
剑指offer---正则表达式匹配
//递归做的 开始用动态规划做 类似通配符问题 总感觉有问题 答案里面用dp做的多多少少有点问题 //估计是我水平太低 //只是其中一个带符号! class Solution { public: bool match(char* str, char* pattern) { if(str==NULL||pattern==NULL) { return false; } return digui(str,pattern); } bool digui(char* str,char* pattern) { //出口条件 if(*str==‘\0‘&&*pattern==‘\0‘) return true; //因为‘.‘和‘*‘都是在pattern中 所以以下这种情况必然为FALSE if(*str!=‘\0‘&&*pattern==‘\0‘) return false; //如果有星号 看星号前面这个元素是否相等 if(*(pattern+1)==‘*‘) { if((*pattern==*str)||(*pattern==‘.‘&&*str!=‘\0‘)) { //星号前面的相等了 return (digui(str,pattern+2)||digui(str+1,pattern)); //为什么不是digui(str+1,pattern+1) //因为字母加星号是有可能对应str中连续多个元素的 } else { //不一样就很简单了 return digui(str,pattern+2); } } if(*str==*pattern||(*pattern=‘.‘&&*str!=‘\0‘)) { return digui(str+1,pattern+1); } return false; } };
剑指offer---正则表达式匹配
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。