LeetCode_10---Regular Expression Matching

来源:互联网 发布:g92锥度螺纹编程 编辑:程序博客网 时间:2024/06/05 21:01

Implement regular expression matching with support for '.' and '*'.

'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover the entire input string (not partial).The function prototype should be:bool isMatch(const char *s, const char *p)Some examples:isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa","aa") → falseisMatch("aa", "a*") → trueisMatch("aa", ".*") → trueisMatch("ab", ".*") → trueisMatch("aab", "c*a*b") → true
实现正规表达式,不是很明白,有空仔细研究一下










    Code:

    public class Solution {    public boolean isMatch(String s, String p) {        if (p.isEmpty()) {        return s.isEmpty();    }    if (p.length() == 1 || p.charAt(1) != '*') {        if (s.isEmpty() || (p.charAt(0) != '.' && p.charAt(0) != s.charAt(0))) {            return false;        } else {            return isMatch(s.substring(1), p.substring(1));        }    }    //P.length() >=2    while (!s.isEmpty() && (s.charAt(0) == p.charAt(0) || p.charAt(0) == '.')) {          if (isMatch(s, p.substring(2))) {             return true;                             }                                            s = s.substring(1);    }    return isMatch(s, p.substring(2));    }}








    0 0
    原创粉丝点击