• [leedcode 10] 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

    public class Solution {
        public boolean isMatch(String s, String p) {
            //递归实现 注意终止条件:p的长度判断p==0;p==1;p>=2;三种
           //当p大于1时,判断p[1]和'*'的关系,若!='*',正常比较s和p.    substring(1)
           //若p[j+1]=='*',如果是p[j]==s[j],需要比较s[j]=p[j+2] or s[j+1]=p[j+2] or s[j+2]=p[j+2]...  ;若p[j]!=s[j],s[j]=p[j+2]
           
           if(p.length()==0)
                return s.length()==0?true:false;//判断是否都为空,很有技巧
           if(p.length()==1){
               return s.length()==1&&(s.charAt(0)==p.charAt(0)||p.charAt(0)=='.');
           }
           if(p.charAt(1)!='*'){
               if(s.length()==0)return false;
               if(s.charAt(0)==p.charAt(0)||p.charAt(0)=='.')
                    return isMatch(s.substring(1),p.substring(1));
                else return false;
               
           }else{
               while(s.length()>0&&(s.charAt(0)==p.charAt(0)||p.charAt(0)=='.')){
                   if(isMatch(s,p.substring(2)))
                        return true;
                   s=s.substring(1);
               }
               return isMatch(s,p.substring(2));
               
               
           }
           
           
        }
    }
  • 相关阅读:
    python 学习笔记 数值型(1)
    python 学习笔记 标识符和变量(3)
    python 学习笔记 字符串(2)
    jsp+servlet+javaBean+Dao
    面试被问到岗时间,是越快越好吗?
    有赞多平台推广接入与测试
    HTTPS 加密、证书、签名与握手
    开发到底要不要自己做测试?
    我也曾找不到工作
    世界第三大浏览器正在消亡
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4625337.html
Copyright © 2020-2023  润新知