zoukankan      html  css  js  c++  java
  • 剑指offer51-正则表达式匹配

    题目描述

    请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配

       bool match(char* str, char* pattern)
        {
            //
            
            if(str==NULL&&pattern==NULL) return false;
            return matchPattern(str,pattern);
        }
        bool matchPattern(char*str,char*pattern)
        {
            if(*str==''&&*pattern=='') return true;
            if(*str!=''&&*pattern=='') return false;
            if(*(pattern+1)=='*')
            {
                //!
                if(*pattern==*str||(*str!=''&&*pattern=='.'))//1至n匹配
                    return matchPattern(str+1,pattern)||matchPattern(str,pattern+2);
             //   if
               //    return matchPattern(str+1,pattern+2);
                if(*pattern!=*str)//0匹配
                    return matchPattern(str,pattern+2);
            }
            if(*pattern=='.')
            {
                if(*str=='')return false;
                return matchPattern(str+1,pattern+1);
            }
            if(*str==*pattern)
            return matchPattern(str+1,pattern+1);
            return false;
        }

  • 相关阅读:
    Android学习笔记触摸事件
    Android学习笔记长按事件的处理
    Android学习笔记物理按键事件处理
    JAVA爬虫入门学习
    SpringBoot的服务入门(Get、Post)
    spring boot 入门学习
    Java 爬虫简单起步
    哇 好久不写C 忘得差不多
    Winfrom窗体应用程序___CefSharp的基础应用
    Winfrom窗体应用程序___DataGridView
  • 原文地址:https://www.cnblogs.com/trouble-easy/p/12980967.html
Copyright © 2011-2022 走看看