首页 > 试题广场 >

正则表达式匹配

[编程题]正则表达式匹配
  • 热度指数:398597 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
示例1

输入

"aaa","a*a"

输出

true
头像 法拉利201903231900848
发表于 2019-08-06 02:37:34
/*     解这题需要把题意仔细研究清楚,反正我试了好多次才明白的。     首先,考虑特殊情况:          1> 展开全文
头像 中工升达预备毕业生
发表于 2019-09-25 22:11:51
很不错的题目,点赞!(自己也只是写出了总体的思路) 作对题目首先要读清题意:在本题中,匹配是指字符串的所有字符匹配整个模式。 模式串中可能存在'.*',它是贪婪匹配,在使整个表达式能得到匹配的前提下匹配尽可能多的字符。例如字符串"abcdeded"与模式"a.*d"匹配。 按下一个字符是否是' 展开全文
头像 Ironxin
发表于 2020-04-27 21:41:45
题目描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。   解法有很多,有非递归的写法,动态规划以及递归,感觉这个题属于难题了,能做出来即可,难度高还追 展开全文
头像 空白offer++
发表于 2020-03-02 21:43:42
本来我也是分情况讨论的,但后来绕晕了而且还有数组越界异常,就全删了,然后想起来直接利用库函数正则表达式匹配把,就去复习了一下 public class Solution { public boolean match(char[] str, char[] pattern) { 展开全文
头像 郭家兴0624
发表于 2019-08-12 14:38:57
题目描述请实现一个函数用来匹配包括'.'和''的正则表达式。模式中的字符'.'表示任意一个字符,而''表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配。 展开全文
头像 yuhao.xyz
发表于 2020-03-02 17:20:46
正则表达式匹配 题目描述 ​ 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与 展开全文
头像 抽血自助取号
发表于 2020-05-18 16:11:54
import re class Solution: # s, pattern都是字符串 def match(self, s, pattern): # write code here #pattern = '^[a-z]*(\.[a-z]*)?[a-z] 展开全文
头像 扣得皮
发表于 2020-02-04 17:38:13
public class Solution { public boolean match(char[] str, char[] pattern) { //检查边界 if(str==null||pattern==null){ retu 展开全文
头像 Java小白zzm
发表于 2020-02-24 01:15:30
思路:递归计算,关键在于多种情况的分析。我将模式串的3种情况‘.’,‘字母相等’,‘字母不相等’分别讨论每种情况分为两种子情况,模式串的后一位是' * '和不是' * '。设置两个指针i,j表示str和Pattern的下标,还有一种特殊的情况当i==str.length时也可能返回true。我将这种 展开全文
头像 比克9527
发表于 2020-09-06 04:17:08
剑指offer:52.正则表达式匹配 思路1 递归匹配 当模式中的第二个字符不是“*”时:1、如果字符串第一个字符和模式中的第一个字符相匹配,那么字符串和模式都后移一个字符,然后匹配剩余的。2、如果字符串第一个字符和模式中的第一个字符相不匹配,直接返回false。 而当模式中的第二个字符是“” 展开全文

问题信息

难度:
467条回答 112217浏览

热门推荐

通过挑战的用户