牛客题解 | 正则表达式匹配

题目

题目链接

解题思路

这是一个动态规划问题,需要考虑多种匹配情况:

  1. 定义 d p [ i ] [ j ] dp[i][j] dp[i][j] 表示 s t r str str 的前 i i i 个字符和 p a t t e r n pattern pattern 的前 j j j 个字符是否匹配
  2. 对于 p a t t e r n [ j − 1 ] pattern[j-1] pattern[j1] 的不同情况:
    • 如果是普通字符:需要 s t r [ i − 1 ] = = p a t t e r n [ j − 1 ] str[i-1] == pattern[j-1] str[i1]==pattern[j1]
    • 如果是’.':可以匹配任意字符
    • 如果是’*':可以匹配0次或多次前面的字符
  3. 对于’*'的情况需要考虑:
    • 匹配 0 0 0 次: d p [ i ] [ j ] = d p [ i ] [ j − 2 ] dp[i][j] = dp[i][j-2] dp[i][j]=dp[i][j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值