[leetcode10] 正则表达式匹配

题目链接

https://leetcode.com/problems/regular-expression-matching/description/


解析链接

https://blog.csdn.net/fzzying3/article/details/42057935

http://www.cnblogs.com/zuoyuan/p/3781773.html


1.边界匹配

将s和p前面,假设一个空字符

dp[0][0],两个空字符匹配,是True

然后,p中的空字符,匹配s,都是False

然后,s中的空字符,用p来匹配,如果p[i]是*的话,把p向前移动两个进行匹配。

2.状态转移方程

1.如果 当前状态不是 ”*”

a.dp[i][j]=dp[i][j-1]       *代表用了前面的字母1次

b.dp[i][j]=dp[i][j-1]       *代表用了前面的字母1次

c. dp[i][j]=dp[i-1][j]  and s[i-1]==p[j-2] or p[j-2]==".     *代表用了前面的字母多次

s[i-1]==p[j-2]是当前的字符与p字符匹配


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,722评论 0 2
  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 12,008评论 0 99
  • TextWatcher是Android文本改变监听接口,内部有以下几个函数: 先了解调用顺序:beforeText...
    Yanqilong阅读 5,367评论 0 1