Leetcode Regular Expression
总结
1. 得到一个教训, 对于模拟题来说, 需要检查为空和越界两种情况
2. look ahead 在自动机类型题目中是非常必要的, 要根据两个字符来判断控制流的走向
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | class Solution { public : bool isMatch( const char *s, const char *p) { int len1 = strlen (s); int len2 = strlen (p); if (len1 == 0 && len2 == 0) return true ; //if(len1 == 0 && len2 != 0) return false; if (len1 != 0 && len2 == 0) return false ; bool star = false ; if (len2 >= 2 && *(p+1) == '*' ) star = true ; if (!star) { // no star if (len1 == 0) return false ; if (p[0] == '.' || p[0] == s[0]) { return isMatch(s+1, p+1); } return false ; } // have star if (p[0] == '.' ) { for ( int k = 0; k <= len1; k ++) { if (isMatch(s+k, p+2)) return true ; } } else { if (isMatch(s, p+2)) return true ; for ( int k = 1; k <= len1 && s[k-1] == p[0]; k ++) { if (isMatch(s+k, p+2)) return true ; } } return false ; } }; |
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· 开发者新选择:用DeepSeek实现Cursor级智能编程的免费方案
· 【译】.NET 升级助手现在支持升级到集中式包管理
· 独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统
· Tinyfox 发生重大改版