首页 > 代码库 > 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") --> false
isMatch("aa", "aa") --> true
isMatch("aaa", "aa") --> false
isMatch("aa", "a*") --> true
isMatch("aa", ".*") --> true
isMatch("ab", ".*") --> true
isMatch("aab", "c*a*b") --> true
bool isMatch(const char* s, const char* p){ if (s == NULL || p == NULL) return false; if (*p == ‘\0‘) return *s == ‘\0‘; // next char is not ‘*‘ if (*(p+1) != ‘*‘) return ((*p == *s) || (*p == ‘.‘ && *s != ‘\0‘)) && isMatch(s+1, p+1); // next char is ‘*‘ while ((*p == *s) || (*p == ‘.‘ && *s != ‘\0‘)) { if (isMatch(s, p+2)) return true; s++; } return isMatch(s, p+2);}
http://leetcode.com/2011/09/regular-expression-matching.html
Regular Expression Matching
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。