面试题19:正则表达式匹配

正则表达式匹配

题目描述

实现包含’.’ '*'正则表达式

leetcode

  1. 正则表达式匹配
    给定一个字符串 (s) 和一个字符模式 §。实现支持 ‘.’ 和 ‘’ 的正则表达式匹配。
    ‘.’ 匹配任意单个字符。
    '
    ’ 匹配零个或多个前面的元素。

bool match(char *str, char *pattern)
{
	if(str == nullptr || pattern==nullptr) return false;
	return matchCore(str, pattern);
}

bool matchCore(char *str, char *pattern)
{
	if(*str=='\0' && pattern == '\0')
	{
		return true;
	}
	if(*str != '\0' && pattern == '\0')
	{
		return false;
	}
	
	if(*(pattern +1) =='*')
	{
		if(*pattern == *str || ( *pattern =='.' && *str != '\0' ))
			return matchCore(str+1, pattern+2) || matchCore(str+1, pattern)|| matchCore(str, pattern);
		else
			return matchCore(str, pattern +2);
	}
	if(*str == * pattern || (*pattern == '.' && *str!='\0'))
		return matchCore(str+1, pattern +1);
	return false;
}

leetcode超出时间限制

发布了68 篇原创文章 · 获赞 2 · 访问量 6201

猜你喜欢

转载自blog.csdn.net/qq_30050175/article/details/90266250