正则表达式匹配

正则表达式匹配

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

这道题目自己觉得挺难。

import java.util.*;


public class Solution {
    public boolean match (String s, String p) {
        if (s == null || p == null)
            return false;
        return doMatch(s, 0, p, 0);
    }

    private boolean doMatch(String s, int i, String p, int j) {
        if (i == s.length() && j == p.length()) return true;
        if (i != s.length() && j == p.length()) return false;
        if (j + 1 < p.length() && p.charAt(j + 1) == '*') {
            if ((i < s.length() && p.charAt(j) == s.charAt(i)) 
                || (p.charAt(j) == '.' && i != s.length())) {
                return doMatch(s, i, p, j + 2)
                    || doMatch(s, i + 1, p, j)
                    || doMatch(s, i + 1, p, j + 2);
            } else {
                return doMatch(s, i, p, j + 2);
            }
        }
        if ((i < s.length() && p.charAt(j) == s.charAt(i)) 
            || (p.charAt(j) == '.' && i != s.length())) {
            return doMatch(s, i + 1, p, j + 1);
        }
        return false;
    }
}
全部评论

相关推荐

10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务