• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ying_vincent
博客园    首页    新随笔    联系   管理    订阅  订阅

LeetCode: Regular Expression Matching

这题改了很多次写了很多种case的代码,虽然通过了,但是感觉自己写得太繁琐了,网上找到一个非常简单的代码。这道题的if语句应该着重在*(p+1),我自己写的着重在*p了,这样就弄得很麻烦,而且最后运行时间也长。

 1 class Solution {
 2 public:
 3     bool isMatch(const char *s, const char *p) {
 4         if (*p == '\0') return *s == '\0';
 5         if (*(p+1) != '*') return *s == *p || *p == '.' && *s != '\0'? isMatch(s+1, p+1) : false;
 6         else {
 7             while (*p == *s || *p == '.' && *s != '\0') {
 8                 if (isMatch(s, p+2)) return true;
 9                 s++;
10             }
11             return isMatch(s, p+2);
12         }
13     }
14 };

 

posted @ 2013-04-20 04:27  ying_vincent  阅读(454)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3