博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode——Regular Expression Matching
阅读量:4961 次
发布时间:2019-06-12

本文共 1610 字,大约阅读时间需要 5 分钟。

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
实现支持 ' . '和 ' * '的正則表達式。

' . ' 匹配不论什么单字符。

' * '匹配0或多个前向元素。

使用递归进行推断。

整体上能够分成两种情况,一种是以 ' * ‘开头的,还有一种不是。

public class RegularExpressionMatching {	public static void main(String[] args) {		System.out.println(isMatch("aa","a"));		System.out.println(isMatch("aa","aa"));		System.out.println(isMatch("aaa","aa"));		System.out.println(isMatch("aa", "a*"));		System.out.println(isMatch("aa", ".*"));		System.out.println(isMatch("ab", ".*"));		System.out.println(isMatch("aab", "c*a*b"));	}	public static boolean isMatch(String s,String p){		if(p.length() == 0)			return s.length() == 0;		if(p.length() == 1 || p.charAt(1) != '*'){			if(s.length()  < 1 || (p.charAt(0) != '.' && s.charAt(0) != p.charAt(0)))				return false;			return isMatch(s.substring(1),p.substring(1));		}else{			int i = -1;			while(i < s.length() && (i < 0 || p.charAt(0) == '.' || p.charAt(0) == s.charAt(i))){				if(isMatch(s.substring(i+1),p.substring(2)))					return true;				i++;			}			return false;		}			}}

Reference:http://www.programcreek.com/2012/12/leetcode-regular-expression-matching-in-java/

转载于:https://www.cnblogs.com/jzssuanfa/p/7209213.html

你可能感兴趣的文章
宏定义
查看>>
ubuntu12.04 串口登录系统配置
查看>>
poj3061
查看>>
linux--多进程进行文件拷贝
查看>>
笔记:git基本操作
查看>>
Gold Smith第一章
查看>>
生成php所需要的APNS Service pem证书的步骤
查看>>
JavaWeb之JSON
查看>>
URL中的特殊字符处理
查看>>
HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
查看>>
windows平台上编译mongdb-cxx-driver
查看>>
optionMenu-普通菜单使用
查看>>
MVC3分页传2参
查看>>
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
appium(13)- server config
查看>>
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>