首页 > 代码库 > 【leetcode】Regular Expression Matching
【leetcode】Regular Expression Matching
Regular Expression Matching
Implement regular expression matching with support for ‘.‘
and ‘*‘
.
‘.‘ Matches any single character.‘*‘ Matches zero or more of the preceding element.The matching should cover the entire input string (not partial).The function prototype should be:bool isMatch(const char *s, const char *p)Some examples:isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa","aa") → falseisMatch("aa", "a*") → trueisMatch("aa", ".*") → trueisMatch("ab", ".*") → trueisMatch("aab", "c*a*b") → true
1 class Solution { 2 public: 3 bool isMatch(const char *s, const char *p) { 4 5 if(s==NULL||p==NULL) return false; 6 if(*p==‘\0‘&&*s==‘\0‘) return true; 7 if(*p==‘\0‘&&*s!=‘\0‘) return false; 8 9 //如果模式串下一个字符为* 10 if(*(p+1)==‘*‘)11 {12 //循环比较当前字符与模式串字符是否相等13 while((*s!=‘\0‘&&*p==‘.‘)||(*s==*p))14 {15 //防止这种情况出现:"aaa", "a*a"16 if(isMatch(s,p+2)) return true;17 s++;18 }19 return isMatch(s,p+2);20 }21 else if((*s!=‘\0‘&&*p==‘.‘)||*s==*p)22 {23 //如果当前元素相等,则开始匹配下一个元素24 return isMatch(s+1,p+1);25 }26 return false;27 }28 };
【leetcode】Regular Expression Matching
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。