zoukankan      html  css  js  c++  java
  • 牛客(52)正则表达式匹配

    //    题目描述
    //    请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,
    //    而'*'表示它前面的字符可以出现任意次(包含0次)。
    //    在本题中,匹配是指字符串的所有字符匹配整个模式。
    //    例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
    
        public static boolean match(char[] str, char[] pattern) {
            if(str == null || pattern == null){
                return false;
            }
            return matchCode(str,0,pattern,0);
        }
    
        public static boolean matchCode(char[] str, int strIndex, char[] pattern, int patternIndex) {
            //匹配结束
            if (strIndex==str.length&&patternIndex==pattern.length){
                return true;
            }
            //匹配失败
            if (strIndex!=str.length&&patternIndex==pattern.length){
                return false;
            }
            //当第二个是*时
            if (patternIndex<pattern.length-1 && pattern[patternIndex+1]=='*'){
                //当前字符可以匹配
                if (strIndex != str.length&&(str[strIndex]==pattern[patternIndex]||pattern[patternIndex]=='.')){
                    return matchCode(str,strIndex+1, pattern,patternIndex)||//当前匹配
                            matchCode(str,strIndex+1, pattern,patternIndex+2)||//匹配一次结束
                            matchCode(str,strIndex, pattern,patternIndex+2);//匹配零次结束
                }else{
                    return matchCode(str,strIndex, pattern,patternIndex+2);
                }
            }
    //        当第二个不是*
            if (strIndex != str.length&&(str[strIndex]==pattern[patternIndex]||pattern[patternIndex]=='.')){
                return matchCode(str,strIndex+1, pattern,patternIndex+1);
            }
    
            return false;
        }
  • 相关阅读:
    python-excel操作
    python-处理文件
    python-pandas应用总结
    python比较数组
    vue学习一(指令1.v-text,v-html,插值表达式{{msg}})
    博客园背景图页面定制css
    SpringBoot的yml文件报org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here in 'reader', line 11, column 16:
    python初学习一
    C#多线程
    API与WebApi
  • 原文地址:https://www.cnblogs.com/kaibing/p/9099270.html
Copyright © 2011-2022 走看看