码迷,mamicode.com
首页 > 其他好文 > 详细

天题系列:Regular Expression Matching

时间:2015-05-29 08:34:13      阅读:101      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!