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

LeetCode 10:正则表达式匹配 | 动态规划

LeetCode 10:正则表达式匹配 | 动态规划

引言

正则表达式匹配(Regular Expression Matching)是 LeetCode 第 10 题,难度为 Hard。题目要求实现正则表达式匹配,支持 '.' 和 '*'。

'.' 匹配任意单个字符,'*' 匹配零个或多个前面的元素。

算法实现

Python 实现

def isMatch(s, p): m, n = len(s), len(p) dp = [[False] * (n + 1) for _ in range(m + 1)] dp[0][0] = True for j in range(1, n + 1): if p[j - 1] == '*': dp[0][j] = dp[0][j - 2] for i in range(1, m + 1): for j in range(1, n + 1): if p[j - 1] == '*': dp[i][j] = dp[i][j - 2] if p[j - 2] == '.' or p[j - 2] == s[i - 1]: dp[i][j] = dp[i][j] or dp[i - 1][j] elif p[j - 1] == '.' or p[j - 1] == s[i - 1]: dp[i][j] = dp[i - 1][j - 1] return dp[m][n]

复杂度分析

时间复杂度:O(m * n)
空间复杂度:O(m * n)

总结

正则表达式匹配使用动态规划解决,核心是对 '*' 的处理。

http://www.jsqmd.com/news/895353/

相关文章:

  • EhViewer开源漫画浏览器:5个技巧打造你的专属漫画阅读体验
  • 别再只盯着BIOS了!聊聊ACPI这个‘隐形管家’如何管好你电脑的睡眠与唤醒
  • 我学了四门编程语言,最后靠一门“最无聊”的语言拿到了5个offer
  • 2025-2026年上海1500万-2000万新房项目推荐:五大楼盘评测夜间通勤防疲惫避免学区不确定注意事项 - 品牌推荐
  • 老服务器焕新颜:在DELL T430上部署定制版ESXi 6.7U3的完整避坑指南
  • MCP开发者峰会解读:Python SDK v1.27.0发布与OAuth 2.1认证共识
  • 保姆级教程:用Unity ShaderGraph的Voronoi和Gradient Noise节点,5分钟搞定动态火焰材质
  • 别只当连线工具!用AXI Interconnect IP核给你的FPGA设计做‘深度体检’与性能调优
  • Ubuntu 22.04 LTS下屏幕分辨率显示‘Unknown display’?用xrandr和xorg.conf两步搞定
  • AI时代软件工程变革:从工具应用到组织能力构建
  • 2026年5月杨浦新房推荐:五大楼盘专业评测滨江置业防踩坑 - 品牌推荐
  • 2026济南商用空调维修推荐,腾扬制冷靠谱保障一站式服务性价比高 - myqiye
  • 别再乱删快照了!VMware Workstation Pro里给Ubuntu虚拟机扩容的正确姿势(附完整流程)
  • 职场中的斗争性
  • 碧蓝航线全自动脚本:3分钟快速部署,彻底解放你的游戏时间
  • 那个天天准点下班的同事,原来偷偷在用 FastDDD
  • 基于VoIPBin Flows API构建AI智能IVR系统实战指南
  • 混合视觉Transformer硬件加速:挑战与优化方案
  • 告别重装烦恼:用Clonezilla把飞腾麒麟系统‘打包’进U盘,实现一键快速部署
  • 别再只用maxVisibleCharacters了!手把手教你为Unity TextMeshPro打字机效果添加平滑字符淡入
  • HsMod:重新定义炉石传说游戏体验的终极模改方案
  • AI Agent架构解析:从大语言模型到自主执行体的工程实践
  • 告别龟速下载!在Ubuntu 22.04上5分钟搞定qBittorrent安装与Web UI远程管理
  • 盘点2026年口碑好的AI漫剧创作培训服务,选哪家比较靠谱 - mypinpai
  • VMware虚拟机磁盘空间告急?手把手教你无损扩容Ubuntu系统盘(含Disk工具分区教程)
  • Seraphine:英雄联盟玩家的5大智能助手功能,快速提升游戏体验
  • 如何快速实现电话号码定位查询:完整开源解决方案指南
  • 低胜率高盈亏比交易系统:如何用38.8%胜率实现21.83%收益
  • 深度解析EhViewer:如何用开源漫画应用打造个性化数字阅读空间
  • AI应用MVP快速搭建指南:Next.js全栈+认证支付部署实战