正则表达式的字符串匹配
题目:字符串与正则表达式式的匹配
题目说明:
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。
'.' 匹配任意单个字符
'*' 匹配零个或多个前面的那一个元素
所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。s 可能为空,且只包含从 a-z 的小写字母。
p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。
a* 理解为[0,+oo]个a
.* 理解为[0,+oo]个. '....~~....'//可以匹配任意的字符串*前必须有明确的单个字符
所以出现**直接返回error。
代码:
//leetcode 10
bool isMatch(string str, string pattern){int len1 = str.size();int len2 = pattern.size();if (len2 && pattern[0] == '*')return false;vector<vector<bool>>flag(len1 + 1, vector<bool>(len2 + 1, false));flag[0][0] = true;for (int i = 1; i <= len2; ++i) {if (pattern[i - 1] == '*')flag[0][i] = flag[0][i - 1] || flag[0][i - 2];}for (int i = 1; i <= len1; ++i) {for (int j = 1; j <= len2; ++j) {if ((pattern[j - 1] == str[i - 1]) || (pattern[j - 1] == '.'))flag[i][j] = flag[i - 1][j - 1];else if (pattern[j - 1] == '*') {if ((str[i - 1] == pattern[j - 2]) || (pattern[j - 2] == '.')) {flag[i][j] = (flag[i][j - 2] || flag[i][j - 1] || flag[i - 1][j]);}else {flag[i][j] = flag[i][j - 2];}}else {flag[i][j] = false;}}}return flag[len1][len2];}
正则表达式的字符串匹配相关推荐
- 正则表达式,字符串匹配、搜索、替换
str正则表达式,常常缩写为 "regex" 或 "regexp",是帮助程序员匹配.搜索和替换文本的模式. 1.匹配字符 myWant = /code/; / ...
- javascript 学习并梳理正则表达式姿势之字符串匹配( 一)
正则表达式字符串匹配相关 引:<JavaScript 正则表达式迷你书> 读老姚丨洞见生产者的<JavaScript 正则表达式迷你书>全是干货好书,通俗易懂,图文结合 正则是 ...
- oracle字符串匹配函数,Oracle使用正则表达式4个主要函数
Oracle正则表达式函数:regexp_like.regexp_substr.regexp_instr.regexp_replace Oracle使用正则表达式4个主要函数: 1.regexp_li ...
- 【NLP】darmatch: 一个非常高效的多模式字符串匹配工具
darmatch 是一个非常高效的字符串匹配工具,支持正向/反向最大匹配分词和多模式字符串精确匹配: 仅包含头文件 (header-only) 基于双数组字典树 (double-array trie) ...
- 【NLP】基于TF-IDF和KNN的模糊字符串匹配优化
作者 | Audhi Aprilliant 编译 | VK 来源 | Towards Data Science 在处理真实数据时,最大的问题主要是数据预处理. 匹配可能是许多分析师面临的最大挑战之一. ...
- java中字符串的精确匹配_Java最佳实践–字符串性能和精确字符串匹配
java中字符串的精确匹配 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. ...
- Java最佳实践–字符串性能和精确字符串匹配
在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. 此外,我们将提供我们自己的用 ...
- 《Python Cookbook 3rd》笔记(2.4):字符串匹配和搜索
字符串匹配和搜索 问题 你想匹配或者搜索特定模式的文本 解法 如果你想匹配的是字面字符串,那么你通常只需要调用基本字符串方法就行,比如 str.find() , str.endswith() , st ...
- 零零散散学算法之再叙字符串匹配
出自:http://blog.csdn.net/fengchaokobe/article/details/8919074 字符串匹配问题这是个老话题了,而我们也热衷于学习和探讨这个问题,并且我们也经常 ...
最新文章
- Windows Azure Pack集成配置SPF
- [转]Creating Unit Tests for ASP.NET MVC Applications (C#)
- 二分类最优阈值确定_机器学习 | 详解GBDT在分类场景中的应用原理与公式推导...
- 如何提高自己的思维逻辑能力?
- C. Barcode dp
- 最大流,最小费用最大流:解析 + 各种板子
- oracle 9.2 imp 表空间,如何imp到不同于原表空间的表空间?
- 分类模型评估之ROC-AUC曲线和PRC曲线
- mfc 调用绿色版的Foxit Reader / 迷你pdf阅读器.exe的同时打开一个pdf文件
- 重装WIN7系统 - 通用激活
- windows域与工作组概念
- 磁盘精灵linux,磁盘空间-逻辑卷
- CRMEB多商户商城系统主要功能及技术亮点
- DailyFi - 9.2 |Loot,黑纸白字?
- 文本检测综述(2017 ~ 2021 持续更新)
- Unity关节的使用和举例,布娃娃系统
- 征友记之---前端开发Partner
- Codeforces E. Game With String
- 互联网晚报 | 10月20日 星期三 | 小米汽车预计2024年量产;阿里发布自研CPU芯片倚天710;《长津湖》票房破50亿元...
- 分级渲染--百度地图路段红黄绿功能
热门文章
- python 自动识别图形验证码
- 树芯计划-ASIC数字IC设计讲解(1)连载中......
- 【推荐】智慧检察公益诉讼辅助快检AI人工智能大数据平台解决方案合集(共183份,928M)
- 租赁合同到期后如何处理
- 2021年材料员-通用基础(材料员)考试试题及材料员-通用基础(材料员)作业模拟考试
- 虚拟DOM中的key
- excel导入mysql并批量查询_EXCEL批量导入到Sqlserver数据库并进行两表间数据的批量修改...
- 中国到美国寄国际快递怎么收费
- 本地浏览php网页的方法
- 【C++实训】实训总结