通配符匹配II

1620阅读 0评论2013-10-29 梦醒潇湘love
分类:C/C++


题目:
    
        

解答:
    具体代码如下所示。
  1. //小集合OK,大集合超时
  2. class Solution
  3. {
  4. public:
  5.     bool isMatch(const char *s, const char *p)
  6.     {
  7.         if (*p == '*')
  8.         {
  9.             //return true;
  10.             while(*p == '*')
  11.             {
  12.                 ++p;
  13.             }
  14.             if (*p == '\0')
  15.             {
  16.                 return true;
  17.             }
  18.             while(*s != '\0' && !isMatch(s,p))
  19.             {
  20.                 ++s;
  21.             }
  22.             return *s != '\0';
  23.         }
  24.         else if (*p == '\0' || *s == '\0')
  25.             return *p == *s;
  26.         else if (*p == *s || *p == '?')
  27.             return isMatch(++s,++p);
  28.         else
  29.             return false;
  30.     }
  31. };

上一篇:通配符匹配 I
下一篇:C++函数中那些不可以被声明为虚函数的函数