Golang | Leetcode Golang题解之第10题正则表达式匹配

题目:

题解:

Go 复制代码
func isMatch(s string, p string) bool {
    m, n := len(s), len(p)
    matches := func(i, j int) bool {
        if i == 0 {
            return false
        }
        if p[j-1] == '.' {
            return true
        }
        return s[i-1] == p[j-1]
    }

    f := make([][]bool, m + 1)
    for i := 0; i < len(f); i++ {
        f[i] = make([]bool, n + 1)
    }
    f[0][0] = true
    for i := 0; i <= m; i++ {
        for j := 1; j <= n; j++ {
            if p[j-1] == '*' {
                f[i][j] = f[i][j] || f[i][j-2]
                if matches(i, j - 1) {
                    f[i][j] = f[i][j] || f[i-1][j]
                }
            } else if matches(i, j) {
                f[i][j] = f[i][j] || f[i-1][j-1]
            }
        }
    }
    return f[m][n]
}
相关推荐
啦啦啦啦啦zzzz18 分钟前
算法:贪心算法
c++·算法·leetcode·贪心算法
Tisfy9 小时前
LeetCode 3536.两个数字的最大乘积:O(1)空间维护max2
数学·算法·leetcode·题解
Wang's Blog11 小时前
Go-Zero 项目开发21: 实现离线消息拉取与会话管理
开发语言·后端·golang
FfHUCisI12 小时前
Golang学习-约瑟夫环问题(Josephus Problem)
开发语言·学习·golang
会编程的土豆12 小时前
结构体 struct:用代码描述用户、订单、座位
数据库·mysql·golang
alphaTao1 天前
LeetCode 每日一题 2026/7/20-2026/7/26
算法·leetcode
llwszx1 天前
【Java/Go后端手撸原生Agent(第九篇):Plan-and-Execute规划模式——从“走一步看一步“到“先谋后动“】
java·python·golang·agent开发·plan模式·规划执行模式
圣保罗的大教堂1 天前
leetcode 3514. 不同 XOR 三元组的数目 II 中等
leetcode
灯澜忆梦1 天前
GO_网络编程---文件传输实战
网络·golang·php
晚笙coding1 天前
LeetCode 199:二叉树的右视图 —— 利用层序遍历获取每层最右节点
算法·leetcode·职场和发展