当前位置: 首页 > news >正文

leetcode 10. 正则表达式匹配

题目:leetcode 10. 正则表达式匹配

https://leetcode.cn/problems/regular-expression-matching/submissions/

视频讲解:

https://www.bilibili.com/video/BV1jd4y1U7kE?spm_id_from=333.788.videopod.sections&vd_source=136c403361d2786d99be256b33ac445a

#include <vector>
#include <string>
using namespace std;class Solution {
public:bool isMatch(string s, string p) {int m = s.size(), n = p.size();vector<vector<bool>> f(m + 1, vector<bool>(n + 1, false));f[0][0] = true; // 两个空字符串可以匹配// 初始化第一行,处理s为空字符串,p为a*b*c*等情况for (int j = 1; j <= n; j++) {if (p[j-1] == '*') {f[0][j] = f[0][j-2];}}// 填充动态规划表for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (p[j-1] != '*') {// 当前字符匹配或为'.'f[i][j] = (s[i-1] == p[j-1] || p[j-1] == '.') && f[i-1][j-1];} else {// 当前字符为'*',处理两种情况if (s[i-1] == p[j-2] || p[j-2] == '.') {// 情况1:匹配s末尾的一个字符,继续使用该组合// 情况2:不匹配字符,丢弃该组合f[i][j] = f[i-1][j] || f[i][j-2];} else {// 只能丢弃该组合f[i][j] = f[i][j-2];}}}}return f[m][n];}
};

相关文章:

  • gitcode与github加速计划
  • 探究 Java SPI 原理与实战_打造高扩展性的应用架构
  • python打卡第48天
  • 板凳-------Mysql cookbook学习 (十--2)
  • 深入浅出 Arrays.sort(DualPivotQuicksort):如何结合快排、归并、堆排序和插入排序
  • MySQL中的部分问题(2)
  • java 乐观锁的实现和注意细节
  • Linux系统的CentOS7发行版安装MySQL80
  • 【笔记】结合 Conda任意创建和配置不同 Python 版本的双轨隔离的 Poetry 虚拟环境
  • 2025HNCTF - Crypto
  • 模块缝合-把A模块换成B模块(没写完)
  • 从零开始学Flink:揭开实时计算的神秘面纱
  • Spring Boot + Flink + FlinkCDC 实现 MySQL 同步到 MySQL
  • 浏览器兼容-polyfill-本地服务-优化
  • 解决transformers.adapters import AdapterConfig 报错的问题
  • Flink CDC 中 StartupOptions 模式详解
  • Flink CDC —部署模式
  • 分布式锁实战:Redisson vs. Redis 原生指令的性能对比
  • UDP 与 TCP 的区别是什么?
  • Cilium动手实验室: 精通之旅---12.Cilium Egress Gateway - Lab
  • 襄阳的网站建设公司/扫一扫识别图片
  • 深圳做网站哪个好/信阳网站推广公司
  • 使用asp.net做购物网站/百度推广找谁做
  • 设计与制作/seo团队
  • 建设银行网站如何下载u盾/可以直接进入网站的正能量
  • 南京英文网站建设/巨量数据官网