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

正则表达式匹配

https://www.nowcoder.com/practice/28970c15befb4ff3a264189087b99ad4?tpId=295&tqId=1375406&ru=/exam/intelligent&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Fintelligent

import java.util.*;
public class Solution {

    public boolean match (String str, String pattern) {
        // write code here
        int i = 0, j = 0;
        if(str.length() == 0 && pattern.length() == 0 )
            return true;
        if(str.length() != 0 && pattern.length() == 0)
            return false;
        if(str.length()!=0 && str.charAt(str.length()-1) != pattern.charAt(pattern.length()-1)&&( pattern.charAt(pattern.length()-1) != '.' && pattern.charAt(pattern.length()-1)!= '*'))
            return false;  
        if(str.length() == 0 && pattern.length() == 2 && pattern.charAt(1) == '*')
            return true;
        for(; i < str.length() && j < pattern.length();)
        {//匹配的话就是字符完全相等或者pattern里面有.
            if(str.charAt(i) == pattern.charAt(j) || pattern.charAt(j) == '.')
            {
                if(j < pattern.length() - 1 && pattern.charAt(j+1) == '*')
                {
                    if(j < pattern.length() -1 && i < str.length() )
                    {
                        return match(str.substring(i+1), pattern.substring(j)) || match(str.substring(i), pattern.substring(j+2)) || match(str.substring(i+1), pattern.substring(j+2));
                    }
                }else
                {
                    i++;
                    j++;
                }
            }else if(j < pattern.length() - 1 && pattern.charAt(j+1) == '*')
                    {
                    j = j + 2;
                    }else
                        return false; 
        }
        if(i == str.length() && j == pattern.length() || (j == pattern.length() - 2 && pattern.charAt(j+1) == '*') || (j == pattern.length() - 1 && pattern.charAt(j) == '*'))
            return true;
            else
            return false;
    }
}

全部评论

相关推荐

每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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