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

    思路:从部分推整体。

     1 class Solution {
     2 public:
     3     bool isMatch(const char *s, const char *p) {
     4         if (*p == '') {
     5             return *s == '';
     6         }
     7         if (*s == *p || *p == '.' && *s != '') {
     8             return *(p + 1) != '*' ? isMatch(s + 1, p+ 1) :
     9                                      isMatch(s, p + 2) || isMatch(s + 1, p);
    10         } else {
    11             return *(p + 1) == '*' && isMatch(s, p + 2);
    12         }
    13     }
    14 };
  • 相关阅读:
    R语言-基本图形
    R语言-基本数据管理
    R语言—图像初阶
    R语言-实用数据对象处理函数
    R语言-数据结构
    scipy 的K-means
    python 解析命令行
    读取视频
    skimage
    face_recognition
  • 原文地址:https://www.cnblogs.com/dengeven/p/4009683.html
Copyright © 2011-2022 走看看