【LeetCode】剑指 Offer 19. 正则表达式匹配

文章目录

  • 【LeetCode】剑指 Offer 19. 正则表达式匹配


package offer;public class Solution19 {public static void main(String[] args) {String s = "aab";String p = "c*a*b";Solution19 solution = new Solution19();System.out.println(solution.method(s, p));}private boolean method(String s, String p){int m = s.length() + 1;int n = p.length() + 1;boolean[][] dp = new boolean[m][n];dp[0][0] = true;for(int i = 2; i < n; i += 2){dp[0][i] = dp[0][i-2] && p.charAt(i-1) == '*';}for(int i = 1; i < m; i++){for(int j = 1; j < n; j++){if(p.charAt(j-1) == '*'){if(dp[i][j-2]) dp[i][j] = true;else if(dp[i-1][j] && s.charAt(i-1) == p.charAt(j-2)) dp[i][j] = true;else if(dp[i-1][j] && p.charAt(j-2) == '.') dp[i][j] = true;}else if(dp[i-1][j-1]){if(s.charAt(i-1) == p.charAt(j-1)) dp[i][j] = true;else if(p.charAt(j-1) == '.') dp[i][j] = true;}}}return dp[m-1][n-1];}
}//时间复杂度为 O(n^2)
//空间复杂度为 O(n^2)

【LeetCode】剑指 Offer 19. 正则表达式匹配相关推荐

  1. 剑指 Offer 19. 正则表达式匹配 regex_match() regex()

    一. 题目: 剑指 Offer 19. 正则表达式匹配 请实现一个函数用来匹配包含'. '和''的正则表达式.模式中的字符'.'表示任意一个字符,而''表示它前面的字符可以出现任意次(含0次).在本题 ...

  2. 剑指 Offer 19. 正则表达式匹配

    剑指 Offer 19. 正则表达式匹配 https://leetcode-cn.com/problems/zheng-ze-biao-da-shi-pi-pei-lcof/ 请实现一个函数用来匹配包 ...

  3. 【LeetCode笔记】剑指Offer 19. 正则表达式匹配(Java、动态规划)

    文章目录 题目描述 思路 && 代码 二刷 打卡第十二天- 题目描述 拖了超级久的一道题= =,懒得看正则表达式,但是其实和正则表达式相关的地方也不多 思路 && 代码 ...

  4. 剑指offer:正则表达式匹配

    题目描述 请实现一个函数用来匹配包括'.'和''的正则表达式.模式中的字符'.'表示任意一个字符,而''表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式.例 ...

  5. 剑指offer之正则表达式匹配

    题目 请实现一个函数用来匹配包括.和*的正则表达式.模式中的字符.表示任意一个字符,而*表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式.例如,字符串aaa ...

  6. leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列

    剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...

  7. 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...

  8. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  9. 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that s ...

最新文章

  1. iptables 工具的使用
  2. 在oracle备份数据库,Oracle在A机器上备份了数据库,到B机器上恢复时,怎么进行下去?...
  3. Android和IOS 调用 支付宝和微信 支付方法
  4. 记录一次centos的双网卡绑定
  5. 1107: 回文数猜想(函数专题)
  6. 02: DOM 实例
  7. 在ASP.NET Atlas中调用Web Service——介绍及简单应用
  8. matlab无法识别VS编译器的办法
  9. 简单的社区管理系统(Qt)
  10. 大学计算机基础教学存在的问题,浅谈大学计算机基础教学存在的问题及改进思路_优秀论文...
  11. ThinkPHP6项目基操目录
  12. cocos2d - 触摸事件
  13. 工具及方法 - 斗地主技巧
  14. chrome绿色版制作方法
  15. JAVA-面向过程编程
  16. 清除浮动的常用的几种方法
  17. 计算机综述性论文范文例文,综述性论文范文例文(综述论文范文模板例文)
  18. 这十一个副业在家就可以完成,疫情在家也有收入,建议收藏
  19. 使用excel画数据曲线
  20. 基于STM32F103C8T6四路AD采集数据显示在oled屏上非DMA传输方式(附百度网盘下载链接)

热门文章

  1. php 查看引入文件,include - 引入文件
  2. kafka分区与分组原理_Kafka工作原理
  3. python googletrans_Python使用googletrans报错的解决方法
  4. oracle12c清理游标,Oracle专题12之游标
  5. Django day17 博客项目(一)
  6. 27、ArrayList和LinkedList的区别
  7. jQuery操作Table学习总结(转)
  8. java 试题 历届试题 单词分析 题解
  9. Android基于Glide的二次封装,借鉴Glide思想二次封装Fresco
  10. oracle 10修改字符集,Oracle 10g修改数据库字符集