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

正则表达式匹配

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

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

全部评论

相关推荐

07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务