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

    //递归做的 开始用动态规划做 类似通配符问题 总感觉有问题 答案里面用dp做的多多少少有点问题
    //估计是我水平太低
    //只是其中一个带符号!
    class Solution 
    {
    public:
        bool match(char* str, char* pattern)
        {
            if(str==NULL||pattern==NULL)
            {
                return false;
            }
            return digui(str,pattern);
        }
        bool digui(char* str,char* pattern)
        {
            //出口条件
            if(*str==''&&*pattern=='') return true;
            
            //因为'.'和'*'都是在pattern中 所以以下这种情况必然为FALSE
            if(*str!=''&&*pattern=='') return false;
            
            
            //如果有星号 看星号前面这个元素是否相等
            if(*(pattern+1)=='*')
            {
                if((*pattern==*str)||(*pattern=='.'&&*str!=''))
                {
                    //星号前面的相等了
                    return (digui(str,pattern+2)||digui(str+1,pattern));
                    //为什么不是digui(str+1,pattern+1) 
                    //因为字母加星号是有可能对应str中连续多个元素的
                }
                else
                {
                    //不一样就很简单了
                    return digui(str,pattern+2);
                }
            }
            
            if(*str==*pattern||(*pattern='.'&&*str!=''))
            {
                return digui(str+1,pattern+1);
            }
            
            return false;
        }
       
    };
  • 相关阅读:
    Matlab矢量图图例函数quiverkey
    FVCOM泥沙模块河流边界处理
    高分辨率格式
    linux字节
    转:海洋地震采集
    海上地震勘探视频
    如何设置默认打印机
    如何查询是否正式刊物
    屏幕截图
    Word中文字与公式不对齐
  • 原文地址:https://www.cnblogs.com/159269lzm/p/7288104.html
Copyright © 2011-2022 走看看