题目:字符串与正则表达式式的匹配

题目说明:

给你一个字符串 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];}

正则表达式的字符串匹配相关推荐

  1. 正则表达式,字符串匹配、搜索、替换

    str正则表达式,常常缩写为 "regex" 或 "regexp",是帮助程序员匹配.搜索和替换文本的模式. 1.匹配字符 myWant = /code/; / ...

  2. javascript 学习并梳理正则表达式姿势之字符串匹配( 一)

    正则表达式字符串匹配相关 引:<JavaScript 正则表达式迷你书> 读老姚丨洞见生产者的<JavaScript 正则表达式迷你书>全是干货好书,通俗易懂,图文结合 正则是 ...

  3. oracle字符串匹配函数,Oracle使用正则表达式4个主要函数

    Oracle正则表达式函数:regexp_like.regexp_substr.regexp_instr.regexp_replace Oracle使用正则表达式4个主要函数: 1.regexp_li ...

  4. 【NLP】darmatch: 一个非常高效的多模式字符串匹配工具

    darmatch 是一个非常高效的字符串匹配工具,支持正向/反向最大匹配分词和多模式字符串精确匹配: 仅包含头文件 (header-only) 基于双数组字典树 (double-array trie) ...

  5. 【NLP】基于TF-IDF和KNN的模糊字符串匹配优化

    作者 | Audhi Aprilliant 编译 | VK 来源 | Towards Data Science 在处理真实数据时,最大的问题主要是数据预处理. 匹配可能是许多分析师面临的最大挑战之一. ...

  6. java中字符串的精确匹配_Java最佳实践–字符串性能和精确字符串匹配

    java中字符串的精确匹配 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. ...

  7. Java最佳实践–字符串性能和精确字符串匹配

    在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. 此外,我们将提供我们自己的用 ...

  8. 《Python Cookbook 3rd》笔记(2.4):字符串匹配和搜索

    字符串匹配和搜索 问题 你想匹配或者搜索特定模式的文本 解法 如果你想匹配的是字面字符串,那么你通常只需要调用基本字符串方法就行,比如 str.find() , str.endswith() , st ...

  9. 零零散散学算法之再叙字符串匹配

    出自:http://blog.csdn.net/fengchaokobe/article/details/8919074 字符串匹配问题这是个老话题了,而我们也热衷于学习和探讨这个问题,并且我们也经常 ...

最新文章

  1. Windows Azure Pack集成配置SPF
  2. [转]Creating Unit Tests for ASP.NET MVC Applications (C#)
  3. 二分类最优阈值确定_机器学习 | 详解GBDT在分类场景中的应用原理与公式推导...
  4. 如何提高自己的思维逻辑能力?
  5. C. Barcode dp
  6. 最大流,最小费用最大流:解析 + 各种板子
  7. oracle 9.2 imp 表空间,如何imp到不同于原表空间的表空间?
  8. 分类模型评估之ROC-AUC曲线和PRC曲线
  9. mfc 调用绿色版的Foxit Reader / 迷你pdf阅读器.exe的同时打开一个pdf文件
  10. 重装WIN7系统 - 通用激活
  11. windows域与工作组概念
  12. 磁盘精灵linux,磁盘空间-逻辑卷
  13. CRMEB多商户商城系统主要功能及技术亮点
  14. DailyFi - 9.2 |Loot,黑纸白字?
  15. 文本检测综述(2017 ~ 2021 持续更新)
  16. Unity关节的使用和举例,布娃娃系统
  17. 征友记之---前端开发Partner
  18. Codeforces E. Game With String
  19. 互联网晚报 | 10月20日 星期三 | 小米汽车预计2024年量产;阿里发布自研CPU芯片倚天710;《长津湖》票房破50亿元...
  20. 分级渲染--百度地图路段红黄绿功能

热门文章

  1. python 自动识别图形验证码
  2. 树芯计划-ASIC数字IC设计讲解(1)连载中......
  3. 【推荐】智慧检察公益诉讼辅助快检AI人工智能大数据平台解决方案合集(共183份,928M)
  4. 租赁合同到期后如何处理
  5. 2021年材料员-通用基础(材料员)考试试题及材料员-通用基础(材料员)作业模拟考试
  6. 虚拟DOM中的key
  7. excel导入mysql并批量查询_EXCEL批量导入到Sqlserver数据库并进行两表间数据的批量修改...
  8. 中国到美国寄国际快递怎么收费
  9. 本地浏览php网页的方法
  10. 【C++实训】实训总结