首页 > 其他 > 详细

天题系列:Regular Expression Matching

时间:2015-05-29 08:32:15      阅读:254      评论:0      收藏:0      [点我收藏+]

烧脑神题

public class Solution {
    public boolean isMatch(String s, String p) {
        // 反正我是想不出来 http://www.cnblogs.com/springfor/p/3893593.html
        if(p.length()==0) return s.length()==0;
        if(p.length()==1) return (s.length()==1 &&(p.charAt(0)==s.charAt(0)||p.charAt(0)==‘.‘));
        
        if(p.charAt(1)!=‘*‘){
            if(s.length()<1) return false;   
            
            return (s.charAt(0)==p.charAt(0)||p.charAt(0)==‘.‘)&&(isMatch(s.substring(1), p.substring(1)));
        }else{
            while(s.length()>0&&(p.charAt(0)==s.charAt(0)||p.charAt(0)==‘.‘)){
                if(isMatch(s , p.substring(2)))
                    return true;
                s = s.substring(1); // p= a*????; s = aaaaa????
            }
            return isMatch(s, p.substring(2)); // p= b*?????, s = a????
        }
        
    }
}

 

天题系列:Regular Expression Matching

原文:http://www.cnblogs.com/jiajiaxingxing/p/4537587.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!