题解 | #正则表达式匹配#

正则表达式匹配

https://www.nowcoder.com/practice/28970c15befb4ff3a264189087b99ad4

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @param pattern string字符串 
     * @return bool布尔型
     */
    public boolean match (String s, String p) {
        if(p.isEmpty()){
            return s.isEmpty();
        }
        boolean headMatch =!s.isEmpty() && (s.charAt(0) == p.charAt(0) || p.charAt(0)=='.');
        // s=ac*c ,p = b*ac*c     ==> p = ac*c
        // s=bb*ac*c ,p = b*ac*c  ==> s = b*ac*c
        //遇到*
        if(p.length() >= 2 && p.charAt(1) == '*' ){
            return match(s,p.substring(2)) || (headMatch && match(s.substring(1),p));
        }else if(headMatch){ //没遇到*
            return match(s.substring(1),p.substring(1));
        }else{
            return false;
        }
    }
}

家人们!快看过来!! 我这解法比官网解法还简洁!递归老好用了!就是费脑子。

全部评论

相关推荐

变异者:10元一天好笑程度100% 我去是哪个意思好笑程度1000%
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务