当前位置:网站首页>leetcode 10. Regular Expression Matching 正则表达式匹配 (困难)
leetcode 10. Regular Expression Matching 正则表达式匹配 (困难)
2022-07-05 13:02:00 【InfoQ】
一、题目大意
- 1 <= s.length <= 20
- 1 <= p.length <= 30
- s 只包含从 a-z 的小写字母。
- p 只包含从 a-z 的小写字母,以及字符 . 和 *。
- 保证每次出现字符 * 时,前面都匹配到有效的字符
二、解题思路
三、解题方法
3.1 Java实现
public class Solution2 {
public boolean isMatch(String s, String p) {
int m = s.length();
int n = p.length();
boolean[][] dp = new boolean[m + 1][n + 1];
dp[0][0] = true;
for (int i = 1; i < n + 1; i++) {
if (p.charAt(i - 1) == '*') {
// 星号 不会在第1个位置
dp[0][i] = dp[0][i - 2];
}
}
for (int i = 1; i < m + 1; i++) {
for (int j = 1; j < n + 1; j++) {
// 上个通配符可能是 点号、星号、字符
if (p.charAt(j - 1) == '.') {
// 上个通配符是 点号
dp[i][j] = dp[i - 1][j - 1];
} else if (p.charAt(j - 1) != '*') {
// 上个通配符不是 星号
dp[i][j] = dp[i - 1][j - 1] && p.charAt(j - 1) == s.charAt(i - 1);
} else if (p.charAt(j - 2) != s.charAt(i - 1) && p.charAt(j - 2) != '.') {
dp[i][j] = dp[i][j - 2];
} else {
dp[i][j] = dp[i][j - 1] || dp[i - 1][j] || dp[i][j - 2];
}
}
}
return dp[m][n];
}
}
四、总结小记
- 2022/7/5 上行下效,皇帝的新装
边栏推荐
- UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xe6 in position 76131: invalid continuation byt
- 碎片化知识管理工具Memos
- STM32 and motor development (from architecture diagram to documentation)
- It's too convenient. You can complete the code release and approval by nailing it!
- 潘多拉 IOT 开发板学习(HAL 库)—— 实验7 窗口看门狗实验(学习笔记)
- 155. 最小栈
- Default parameters of function & multiple methods of function parameters
- How to realize batch sending when fishing
- About the single step debugging of whether SAP ui5 floating footer is displayed or not and the benefits of using SAP ui5
- LeetCode20.有效的括号
猜你喜欢
leetcode:221. Maximum square [essence of DP state transition]
Talk about my drawing skills in my writing career
SAP SEGW 事物码里的 Association 建模方式
函数传递参数小案例
国际自动机工程师学会(SAE International)战略投资几何伙伴
Hundred days to complete the open source task of the domestic database opengauss -- openguass minimalist version 3.0.0 installation tutorial
数据湖(七):Iceberg概念及回顾什么是数据湖
精彩速递|腾讯云数据库6月刊
CF:A. The Third Three Number Problem【关于我是位运算垃圾这个事情】
Alibaba cloud SLB load balancing product basic concept and purchase process
随机推荐
使用Dom4j解析XML
I'm doing open source in Didi
解决 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa2 in position 107
RHCSA4
时钟周期
Introduction aux contrôles de la page dynamique SAP ui5
Write macro with word
Natural language processing series (I) introduction overview
Compile kernel modules separately
##无监控,不运维,以下是监控里常用的脚本监控
手把手带你入门Apache伪静态的配置
go 指针
LeetCode20.有效的括号
SAP SEGW 事物码里的导航属性(Navigation Property) 和 EntitySet 使用方法
SAP UI5 视图里的 OverflowToolbar 控件
Put functions in modules
MySQL splits strings for conditional queries
Rocky基础命令3
跨平台(32bit和64bit)的 printf 格式符 %lld 输出64位的解决方式
SAP UI5 DynamicPage 控件介绍