剑指offer——正则表达式匹配

版权声明:本文为博主原创文章,若需转载,请注明http://blog.csdn.net/qq_30091945 https://blog.csdn.net/qq_30091945/article/details/81738957

概要

题目描述
请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配


C++ AC代码

class Solution {
    public:
        bool match(char* str, char* pattern){
            if(pattern[0] == 0 && str[0] == 0){
                return true;
            }
            if(pattern[0] != 0 && pattern[1] == '*'){
                if(match(str,pattern+2)){
                    return true;
                }
            }
            if(str[0] == pattern[0] || (str[0] != 0 && pattern[0] == '.')){
                if(match(str+1,pattern+1)){
                    return true;
                }
                if (pattern[1] == '*' && match(str + 1, pattern)){
                    return true;
                }
            }
            return false;
        }
};

猜你喜欢

转载自blog.csdn.net/qq_30091945/article/details/81738957