剑指Offer原书题解的C++版本

正则表达式匹配

http://www.nowcoder.com/practice/28970c15befb4ff3a264189087b99ad4

class Solution {
    bool matchCore(const string& str,const string& pattern){
        if(str.empty()&&pattern.empty())
            return true;
        if(!str.empty()&&pattern.empty())
            return false;
        if(pattern[1]=='*'){
            if(pattern[0]==str[0]||(pattern[0]=='.'&&!str.empty()))
                                //进入下一状态
                return matchCore(str.substr(1),pattern.substr(2))
                                //留在当前状态
                                ||matchCore(str.substr(1), pattern)
                                //忽略一个'*'
                                ||matchCore(str, pattern.substr(2));
            else
                                //忽略一个'*'
                return matchCore(str, pattern.substr(2));
        }
        if(str[0]==pattern[0]||(pattern[0]=='.'&&!str.empty()))
            return matchCore(str.substr(1), pattern.substr(1));
        
        return false;
    }
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @param pattern string字符串 
     * @return bool布尔型
     */
    bool match(string str, string pattern) {
        // write code here
        return matchCore(str,pattern);
    }
};
全部评论
递归深度大,使用内存多,力扣上部分测试用例会超时,如:"aaaaaaaaaaaaab""a*a*a*a*a*a*a*a*a*a*c"。
2 回复 分享
发布于 2021-08-24 09:34
这个可以在递归的时候维护一个map,表示 map[strIndex_patternIndex]如果遍历过了就需要再次重复遍历可以避免超时
点赞 回复 分享
发布于 2024-01-20 21:02 浙江
中间的几个或导致递归次数太多超时
点赞 回复 分享
发布于 2023-02-21 11:38 江苏

相关推荐

评论
6
1
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
8454次浏览 76人参与
# 你的实习产出是真实的还是包装的? #
1557次浏览 39人参与
# 巨人网络春招 #
11282次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7300次浏览 40人参与
# 简历第一个项目做什么 #
31444次浏览 320人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186719次浏览 1118人参与
# 米连集团26产品管培生项目 #
5436次浏览 213人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152201次浏览 887人参与
# 研究所笔面经互助 #
118829次浏览 577人参与
# 重来一次,我还会选择这个专业吗 #
433235次浏览 3926人参与
# 简历中的项目经历要怎么写? #
309862次浏览 4177人参与
# 面试紧张时你会有什么表现? #
30460次浏览 188人参与
# 你今年的平均薪资是多少? #
212910次浏览 1039人参与
# AI时代,哪些岗位最容易被淘汰 #
63173次浏览 784人参与
# 我的求职精神状态 #
447925次浏览 3128人参与
# 你最满意的offer薪资是哪家公司? #
76352次浏览 374人参与
# 正在春招的你,也参与了去年秋招吗? #
363053次浏览 2635人参与
# 你怎么看待AI面试 #
179703次浏览 1220人参与
# 牛客AI文生图 #
21391次浏览 237人参与
# 职能管理面试记录 #
10773次浏览 59人参与
# 网易游戏笔试 #
6422次浏览 83人参与
# 腾讯音乐求职进展汇总 #
160527次浏览 1109人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务