正则表达式匹配:
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
class Solution { public: bool isMatch(const char *s,const char *p) { if(p[0] == '\0') return s[0] == '\0'; if(p[0] == '*') return isMatch(s,p + 1); if(p[1] == '*'){ if(s[0] == '\0') return isMatch(s,p + 2); if(p[0] == '.') return isMatch(s + 1,p) || isMatch(s,p + 2); return (s[0] == p[0] && isMatch(s + 1,p)) || isMatch(s,p + 2); } else { if(p[0] == '.') return s[0] != '\0' && isMatch(s + 1,p + 1); return s[0] == p[0] && isMatch(s + 1,p + 1); } } };
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。