码迷,mamicode.com
首页 > 其他好文 > 详细

※剑指offer系列41:正则表达式匹配

时间:2019-07-24 18:00:26      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:mat   条件语句   att   相同   public   条件   正则表达   nbsp   bsp   

做这个题目一定要思路清晰,各种情况都要考虑完善。

分为两种情况

1.其中有一个到结尾了

2.两个都没结尾,这里以它的下一位是否为*作为判断条件。

 1 class Solution {
 2 public:
 3     bool match(char* str, char* pattern)
 4     {
 5         if (str == NULL || pattern == NULL)
 6             return false;
 7         return matchcore(str, pattern);
 8     }
 9     bool matchcore(char* str, char* pattern)
10     {
11         //第一种情况
12         if (*str == \0&&*pattern == \0)
13             return true;
14         if (*str != \0&&*pattern == \0)
15             return false;
16 
17         //第二种情况
18         if (*(pattern + 1) == *)
19         {
20             if (*str == *pattern || (*str != \0&&*pattern == .))
21                 return matchcore(str + 1, pattern) ||//有n个不需要的数字需要用*消除
22                 matchcore(str, pattern + 2);//跳过这个数字和后面的星星,即出现0次
23             else
24                 return match(str, pattern + 2);//跳过这个数字和后面的星星,即出现0次
25 
26         }
27         if (*str == *pattern|| (*str != \0&&*pattern == .))//注意这里的条件语句
28                                                                                         //两个数相同和没有结尾的情况下模式出现‘.‘是一样的
29             return  matchcore(str + 1, pattern + 1);
30         return false;
31     }
32 };

 

※剑指offer系列41:正则表达式匹配

标签:mat   条件语句   att   相同   public   条件   正则表达   nbsp   bsp   

原文地址:https://www.cnblogs.com/neverland0718/p/11239651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!