10. Regular Expression Matching
来源:互联网 发布:奇点.com mac软件 编辑:程序博客网 时间:2024/03/28 23:21
Implement regular expression matching with support for '.'
and '*'
.
'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover the entire input string (not partial).The function prototype should be:bool isMatch(const char *s, const char *p)Some examples:isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa","aa") → falseisMatch("aa", "a*") → trueisMatch("aa", ".*") → trueisMatch("ab", ".*") → trueisMatch("aab", "c*a*b") → true
表达式匹配问题:*匹配一到多个连续字符 ‘.’匹配一个字符
在s只有一个字符时 p只要一个 * 不能匹配
分别讨论 长度为 0 1 >1的情况
public class Solution { public boolean isMatch(String s, String p) { if(p==null||s==null) return false; //null和length==0的区别 if(p.length()==0) return s.length()==0; if(p.length()==1) //如果p的长度是1 那么 比较第一位 return s.length()==1&&(p.charAt(0)=='.'||p.charAt(0)==s.charAt(0)); if(p.charAt(1)=='*') //如果p的第二位 是 * 有两种可能 一种是*之前的都省略掉 比较*之后的内容和s是否匹配 第二种是略去s中的一个字符继续向后匹配 if(isMatch(s,p.substring(2))) return true; else return s.length()>0&&(p.charAt(0)=='.'||p.charAt(0)==s.charAt(0))&&isMatch(s.substring(1),p); else //如果p的第二位不是 * 一位一位的向后比较 并且将比较的字符串逐渐缩短 return s.length()>0&&(p.charAt(0)=='.'||s.charAt(0)==p.charAt(0))&&isMatch(s.substring(1),p.substring(1)); }}
0 0
- 10. Regular Expression Matching
- 10.Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 10. Regular Expression Matching
- 在React中如何使用复合组件中的方法?
- 用户画像感性认识一
- easyui的combobox、combotree
- Android入门--四大组件---广播Broadcast--(4)
- unity5阴影
- 10. Regular Expression Matching
- 解决DEDECMS Call to undefined function dede_htmlspecialchars
- struts2文件上传与下载
- RecyclerView----高仿知乎的侧滑删除
- jsp采用绝对路径应用文件
- jdbc连接数据库
- Android EventBus源码解析 带你深入理解EventBus
- 设计模式随笔-模板方法模式
- faster-rcnn 封装