10Regular Expression Matching
来源:互联网 发布:sdl区域分割算法 编辑:程序博客网 时间:2024/05/01 07:06
这题是正则表达式匹配,允许使用. *两个符号。
".*"可以匹配任意的字符串,需要注意。
这题我做的关键是分情况考虑,做dp,f[i][j]==True表示字符串到i和模式串到j能够匹配。
在模式串p中,每个字符有3种可能: 字母、"*"、"."。
如果是字母,则f[i][j]=f[i-1][j-1] and s[i]==p[j] 最简单
如果是".",则f[i][j]=f[i-1][j-1] 也很简单
关键是"*"很复杂,进一步展开
首先可以赋值 f[i][j]=f[i][j-2] (当然此时要求j>=2,下同,如果j==1则特殊处理一下即可)
如果p[j-1]=="." 那么 p[j-1]和p[j]本身是可以匹配任意多字符串的 因此f[i][j]= f[i][j] or f[st][j-2]
如果p[j-1]==字母a,那么p[j-1]和p[j]要么不匹配任何(也就是“首先”对应的情况),要么匹配1个或多个相同的字母a 于是f[i][j]=f[i][j] or f[st][j-2] 保证s[st+1]==字母a
边界情况也要认真考虑。
此题细节实在不少,我提交了7次才过去。
0 0
- 10、Regular Expression Matching
- 10,Regular Expression Matching
- 10Regular Expression Matching
- 10 Regular Expression Matching
- 10、Regular Expression Matching
- 10Regular Expression Matching
- 【10】Regular Expression Matching
- 10-Regular Expression Matching
- Leetcode【10】:Regular Expression Matching
- [leetcode 10] Regular Expression Matching
- LeetCode(10) Regular Expression Matching
- [leetcode 10] Regular Expression Matching
- leetcode.10------------Regular Expression Matching
- [leetcode] 10 Regular Expression Matching
- [leetcode] 10 Regular Expression Matching
- LeetCode 10:《Regular Expression Matching》
- leecode 10 Regular Expression Matching
- leetcode 10: Regular Expression Matching
- 漫谈C指针第十二讲---回顾指针概念
- 歪果仁眼中的中国科技界必须知道的7件事
- vmware workstation 11许可证密钥
- 已知进程pid获取其父进程pid
- SOAPUI测试REST项目(二)——从现有的服务创建REST模拟服务
- 10Regular Expression Matching
- 在Windows下用Python搭建Deeplearning平台
- UML知识
- DB2数据库日期时间的处理
- github客户端常用命令
- 日期格式转换
- Oracle 账号密码忘记了咋办
- iOS项目开发实战——获取当前的UUID(通用唯一识别码)
- 黑马程序员——多线程+单例设计