zoukankan      html  css  js  c++  java
  • 面试题31:字符串正则表达式的递归匹配

    mplement 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

     1 class Solution {
     2 public:
     3     bool isMatch(const char *s, const char *p) {
     4 
     5         if (*p == '') return *s == '';
     6 
     7         if (*(p + 1) == '*') {
     8             if (*s == *p || *p == '.') {
     9                 if (*s == '') {
    10                     return isMatch(s, p + 2);
    11                 } else {
    12                     return isMatch(s, p + 2) || isMatch(s + 1, p) || isMatch(s + 1, p + 2);
    13                 }
    14             } else {
    15                 return isMatch(s, p + 2);
    16             }
    17         }
    18         if (*s == *p || (*p == '.' && *s != '')) {
    19             return isMatch(s + 1, p + 1);
    20         }
    21         return false;
    22     }
    23 };
  • 相关阅读:
    音频处理之回声消除及调试经验
    音频软件开发中的debug方法和工具
    ZJOI2015地震后的幻想乡
    HEOI2015小L的白日梦
    THUWC2017随机二分图
    PKUWC Slay The Spire
    dp的一些计划
    鸡汤征集贴
    弱菜的各种模板
    洛谷P4902乘积
  • 原文地址:https://www.cnblogs.com/wxquare/p/6911915.html
Copyright © 2011-2022 走看看