leetcode-55.通配符匹配

dp

java 复制代码
class Solution {
    public boolean isMatch(String s, String p) {
        int m = s.length();
        int n = p.length();
        boolean[][] dp = new boolean[m + 1][n + 1];
        // init
        dp[0][0] = true;
        for (int i = 1; i <= n; i++) {
            if (p.charAt(i - 1) == '*') {
                dp[0][i] = true;
            } else {
                break;
            }
        }
        // core
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                if (p.charAt(j - 1) != '*') {
                    if (s.charAt(i - 1) == p.charAt(j - 1) || p.charAt(j - 1) == '?') {
                        dp[i][j] = dp[i - 1][j - 1];
                    }
                } else {
                    dp[i][j] = dp[i][j - 1] || dp[i - 1][j];
                }
            }
        }
        return dp[m][n];
    }
}
相关推荐
算AI2 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
我不会编程5553 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
owde4 小时前
顺序容器 -list双向链表
数据结构·c++·链表·list
第404块砖头4 小时前
分享宝藏之List转Markdown
数据结构·list
hyshhhh4 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
蒙奇D索大4 小时前
【数据结构】第六章启航:图论入门——从零掌握有向图、无向图与简单图
c语言·数据结构·考研·改行学it
A旧城以西4 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
杉之5 小时前
选择排序笔记
java·算法·排序算法
烂蜻蜓5 小时前
C 语言中的递归:概念、应用与实例解析
c语言·数据结构·算法
OYangxf5 小时前
图论----拓扑排序
算法·图论