zoukankan      html  css  js  c++  java
  • LeetCode_Regular Expression Matching

    Implement regular expression matching with support for '.' and '*'.
    
    
    '.' Matches any single character.
    '*' Matches zero or more of the preceding element.
    
    The matching should cover the entire input string (not partial).
    
    The function prototype should be:
    bool isMatch(const char *s, const char *p)
    
    Some examples:
    isMatch("aa","a") ? false
    isMatch("aa","aa") ? true
    isMatch("aaa","aa") ? false
    isMatch("aa", "a*") ? true
    isMatch("aa", ".*") ? true
    isMatch("ab", ".*") ? true
    isMatch("aab", "c*a*b") ? true
    

      

    class Solution {
    public:
        bool isMatch(const char *s, const char *p) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function    
             assert(s != NULL  && p != NULL);        
            if(*p == '') return *s == '';
            if(*(p+1) != '*'){
                if(*s == *p || (*p == '.' && *s != '') )return isMatch(s+1,p+1);
                return false;
            }else{
                while(*s == *p ||(*p == '.' && *s != '')){
                    if(isMatch(s,p+2)) //匹配零个
                      return true;
                    s++; //匹配多个
                }
                //while 结束后,和*后的进行匹配
                return isMatch(s, p+2) ;            
            }
        }
    };

    http://www.cnblogs.com/yingzhongwen/archive/2013/04/20/3031915.html

  • 相关阅读:
    read_csv 函数
    fillna()
    一个逗号引发的错误
    数据预处理
    groupby()
    泰坦尼克号 预处理
    python string
    python title()的用法
    translate()函数及ROT13加密
    python Lambda, filter, reduce and map
  • 原文地址:https://www.cnblogs.com/graph/p/3234899.html
Copyright © 2011-2022 走看看