LeetCode第十题-正则表达式匹配

Regular Expression Matching

问题简介:给定字符串,给定匹配模式,判断字符串是否满足匹配模式

问题详解:一共有两种特殊模式:

‘.’ 匹配任何单个字符

‘*’ 匹配前面元素的零个或多个

注:匹配的是整个给定字符串,不是部分

举例:

1:

输入:

s = “aa”

p = “a”

输出: false

解释: “a” 不匹配 “aa”.

2:

输入:

s = “aa”

p = “a*”

输出: true

解释: ‘*’ 代表 0 或多个字符 ‘a’

3:

输入:

s = “ab”

p = “."

输出: true

解释: ".” 代表 0 或多个任意字符

4:

输入:

s = “aab”

p = “cab”

输出: true

5:

输入:

s = “mississippi”

p = “misisp*.”

输出: false

解法一:递归

先判断输入模式,当模式为空时,只判断输入文本是否为空即可

将输入文本与模式逐字符匹配,当碰到特殊符号’.‘时相当于匹配任何字符,碰到’*‘时则改变字符串进入递归下一次判断

解法二:Dynamic Programming

进行解法一的递归,我们采取缓存中间结果来节省建立字符串的空间

小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

原文地址:https://www.cnblogs.com/lalalaczq/p/10713617.html

时间: 2024-08-30 06:03:24

LeetCode第十题-正则表达式匹配的相关文章

刷题——正则表达式匹配

首先看题题目 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串. 说明: s 可能为空,且只包含从 a-z 的小写字母. p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *. 示例 1: 输入: s = "aa" p = "a" 输出: false 解释: "a&quo

[LeetCode] Regular Expression Matching 正则表达式匹配

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

leetcode第十题--Regular Expression Matching

Problem: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 s

【leetcode 简单】 第七十题 有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字母. 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? class Solution:

正则表达式匹配题

正则表达式匹配题 靶场地址:http://**.**.***.**:8010/re/?id=1. <?php $key='flag{********************************}'; $Regular=preg_match("/zkaq.*key.{2,9}:\/.*\/(key*key)/i", trim($_GET["id"]), $match); if( $Regular ){ die('key: '.$key); } 代码解释: p

LeetCode 10 Regular Expression Matching (正则表达式匹配)

翻译 实现支持"."和"*"的正则表达式匹配. "." 匹配支持单个字符 "*" 匹配零个或多个前面的元素 匹配应该覆盖到整个输入的字符串(而不是局部的). 该函数的原型应该是: bool isMatch(const char * s, const char * p) 示例: isMatch("aa","a") → false isMatch("aa","a

LeetCode(10. 正则表达式匹配)

问题描述 给定一个字符串 (s) 和一个字符模式 (p).实现支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符. '*' 匹配零个或多个前面的元素. 匹配应该覆盖整个字符串 (s) ,而不是部分字符串. 说明: s 可能为空,且只包含从 a-z 的小写字母. p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *. 示例 1: 输入: s = "aa" p = "a" 输出: false 解释: "a" 无法匹配

python进阶十_正则表达式(一)

最近状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思完全不在点上,希望可以借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,如果真的是我自己的问题呢,以前我经常跟别人说,千万不要怀疑自己,因为很清楚一旦连自己都变的不可信,那这个世界就太疯狂了,当一遍一遍的问我,现在连我自己都快怀疑自己了,我一遍一遍的说服别人,想不到现在竟然需要自己去说服自己,何其的悲哀~ 一.正则表达式基础 1.基本概念 正则表达式是计算机科学的一个概念.正则表达式使用单个字符串来描

【LeetCode-面试算法经典-Java实现】【010-Regular Expresssion Matching(正则表达式匹配)】

[010-Regular Expresssion Matching(正则表达式匹配)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Implement regular expression matching with support for '.' and '*'. '.' Matches any single character. '*' Matches zero or more of the preceding element.The matching sho