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

题目:

题解:

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]
}

相关推荐

  1. 剑指 Offer(2版)面试 19表达式匹配

    2024-04-05 05:42:05       65 阅读
  2. LeetCode热Hot100 - 表达式匹配

    2024-04-05 05:42:05       33 阅读
  3. LeetCode-10. 表达式匹配

    2024-04-05 05:42:05       62 阅读
  4. leetCode算法—10. 表达式匹配

    2024-04-05 05:42:05       71 阅读
  5. LeetCode_10_困难_表达式匹配

    2024-04-05 05:42:05       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 05:42:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 05:42:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 05:42:05       87 阅读
  4. Python语言-面向对象

    2024-04-05 05:42:05       96 阅读

热门阅读

  1. Chrony与NTP

    2024-04-05 05:42:05       40 阅读
  2. Python Django ORM使用简单的增,删,改,查

    2024-04-05 05:42:05       32 阅读
  3. 十九、Rust Tcp Rpc 示例

    2024-04-05 05:42:05       40 阅读
  4. C# 系统学习(异步编程)

    2024-04-05 05:42:05       40 阅读
  5. 数据结构——顺序表实现通讯录

    2024-04-05 05:42:05       31 阅读
  6. AI与技术美术(TechArt)

    2024-04-05 05:42:05       33 阅读
  7. 什么是机器学习?

    2024-04-05 05:42:05       33 阅读
  8. 机器学习之常用的回归预测模型

    2024-04-05 05:42:05       34 阅读