栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode10.正则表达式匹配(java)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode10.正则表达式匹配(java)

public static boolean isMatch(String s, String p) {

        char[] schar = s.toCharArray();
        char[] pchar = p.toCharArray();
        int slength = s.length();
        int plength = p.length();
        boolean[][] dp = new boolean[slength + 1][plength + 1];
        
        dp[0][0] = true;
        
        for (int j = 1; j < plength + 1; j++) {
            if (pchar[j - 1] == '*') {
                dp[0][j] = dp[0][j - 2];
            }
        }
        
        for (int i = 1; i < slength + 1; i++) {
            for (int j = 1; j < plength + 1; j++) {
                
                if (pchar[j - 1] == '.') {
                    dp[i][j] = dp[i - 1][j - 1];
                }
                
                else if (pchar[j - 1] == '*') {
                    
                    if (pchar[j - 2] == '.') {
                        if (dp[i][j - 2] || dp[i][j - 1] || dp[i - 1][j])
                            dp[i][j] = true;
                    }
                    
                    else {
                        if (dp[i][j - 2] || dp[i][j - 1] || (schar[i - 1] == pchar[j - 2] 
                            && dp[i - 1][j]))
                            dp[i][j] = true;
                    }
                }
                
                else {
                    if (schar[i - 1] == pchar[j - 1])
                        dp[i][j] = dp[i - 1][j - 1];
                }
            }
        }
        return dp[slength][plength];
}

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037417.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号