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

LeetCode 10 正则表达式匹配 - DP经典hard

LeetCode 10 正则匹配,Hard DP,处理好*的"匹配零次还是多次"是关键。


🔴 正则表达式匹配

实现.*的正则匹配。.匹配任意单字符,*匹配前一个字符 0 次或多次。


如果用回溯暴力枚举*是 0 次还是 1 次还是 2 次…… 分支爆炸。DP 的角度:dp[i][j]表示 s 的前 i 个字符和 p 的前 j 个字符是否匹配。

遇到*时有两条路——匹配 0 次(把字符*当空气,跳过)、匹配 1 次(消耗 s 当前字符,*留着还能继续用)。

publicbooleanisMatch(Strings,Stringp){intm=s.length(),n=p.length();boolean[][]dp=newboolean[m+1][n+1];dp[0][0]=true;// 处理空 s 的情况:p 中 "a*" 可以匹配空for(intj=1;j<=n;j++){if(p.charAt(j-1)=='*')dp[0][j]=dp[0][j-2];}for(inti=1;i<=m;i++){for(intj=1;j<=n;j++){charsc=s.charAt(i-1),pc=p.charAt(j-1);if(pc!='*'){dp[i][j]=dp[i-1][j-1]&&(sc==pc||pc=='.');// 直接匹配}else{charprev=p.charAt(j-2);// * 前面的字符dp[i][j]=dp[i][j-2]||// * 匹配 0 次(dp[i-1][j]&&(sc==prev||prev=='.'));// * 匹配 1 次}}}returndp[m][n];}

dp[i][j - 2]是"匹配 0 次"——把字符*整个扔了。dp[i - 1][j]是"匹配 1 次"——消耗 s 的一个字符,*还留在原地(因为 j 没变,下次还能继续用)。DP 表维度是 (m+1)×(n+1),dp[0][0] 表示两个空串匹配,记得初始化空 s 时*能消掉前一个字符的情况。


这道题你踩过什么坑?或者你用别的语言实现过吗?评论区聊聊,回头复习也方便翻。

http://www.cnnetsun.cn/news/3995445.html

相关文章:

  • 软件设计师自学备考全攻略:三轮复习法与核心考点突破
  • C语言学习指南:从零基础到项目实战,掌握指针与内存管理核心
  • Java AI Agent开发实战:四大框架选型与RAG系统构建指南
  • 状态机思维:用工程化框架优化个人思考与决策流程
  • C语言循环语句全解析:for、while、do-while与break/continue实战指南
  • STM32标准库入门:从工程搭建到外设驱动的核心实践指南
  • 上海网站建设 普送:为何选择高性价比方案能帮助企业突围重围
  • Python零基础学习路径:避开新手常见坑,从环境搭建到项目实战
  • AI前线部署工程师:打通模型落地最后一公里的关键角色
  • Windows系统重装全攻略:从硬件排查到驱动加载,彻底解决安装失败
  • Python继承中super().__init__()的正确使用与常见陷阱解析
  • 2024年揭秘:网站建设公司需要什么资质以及选择避坑指南
  • 小熊猫Dev-C++:5分钟快速上手的终极C++开发环境
  • 拒绝套路化模板,灵犀科技如何用高端网站建设为企业打造专属品牌护城河
  • Crossformer时间序列预测:多变量交互与多尺度注意力机制详解
  • Python包管理指南:pip与conda核心原理、环境配置与实战应用
  • Linux交换分区(Swap)配置与优化实战指南
  • 飞鸽网站建设如何助力中小企业在2024年实现低成本高效获客与品牌升级的全面解析
  • 绍兴网站建设设计揭秘:如何打造高转化率的本土化数字名片
  • AI智能体工具反思机制:从机械执行到自主决策的进化
  • MCP转SSE:实时数据流转换技术实践
  • Windows平台Chromium 145编译环境搭建与优化指南
  • 车规级人脸识别技术:从手机Face ID到汽车无感解锁的跨界升级
  • AI绘画精准构图:Stable Diffusion视觉引导与ControlNet实战
  • 从重复内耗到价值创造:ArkClaw如何重塑部门助理工作流
  • 揭秘天通苑网站建设背后的真相:如何为超大型社区打造专属数字化转型方案
  • 大模型API调用实战:确保JSON格式稳定返回的完整解决方案
  • 2026年赛事投票系统选型参考:四款主流平台核心能力对比
  • phpcms v9网站建设入门:从零搭建企业官网的深度解析与实操指南
  • Java基本数据类型深度解析:从内存优化到实战避坑指南