正则表达式匹配

正则表达式匹配

http://www.nowcoder.com/questionTerminal/45327ae22b7b413ea21df13ee7d6429c

站在巨人的肩膀上
![图片说明](https://uploadfiles.nowcoder.com/images/20200527/327658856_1590592522966_FBCB11D91EB64998821BAAE3EFADFAC0 "图片标题")

class Solution {
public:
    bool match(char* str, char* pattern)
    {
        if(*str == '\0' && *pattern == '\0')    return true; //刚好结束

        if(*str != '\0' && *pattern == '\0')    return false;//模板用完

        if(*(pattern+1) != '*')//不能重复0-n次
        {
            if(*str == *pattern || (*str != '\0' && *pattern == '.'))//相同或者模板含有任意符号
                return match(str+1,pattern+1);
            else//不相同
                return false;
        }
        else
        {
            if(*str == *pattern || (*str != '\0' && *pattern == '.'))//相同或者模板含有任意符号
                return match(str+1,pattern+2) || match(str+1,pattern) || match(str,pattern+2);//第一个match表示 *只算作一个字符 第二个match表示 *算作多个字符 第三个match表示 尽管当前字符匹配 但*仍不算作字符(即为0)是要继续忽略的
            else
                return match(str,pattern+2);//不相同,使用0次
        }
    }
};
全部评论

相关推荐

如题,他是要劝退我了吗
椛鸣:根据你的时间 来给你安排任务 如果你时间长 可能会参与到一些长期的项目 时间短 那就只能做点零工
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务