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;
        }

  • 相关阅读:
    C# 解析 json
    鸡汤一则
    jsp 环境配置记录
    jquery validate 自定义验证方法
    axure rp pro 7.0(页面原型工具)
    跨数据库服务器查询步骤
    .net 直接输出远程文件到浏览器和下载文件保存到本机
    URL中文乱码处理总结(转)
    使用ajax上传中遇到的问题
    Web 通信 之 长连接、长轮询(转)
  • 原文地址:https://www.cnblogs.com/trouble-easy/p/12980967.html
Copyright © 2011-2022 走看看