博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式匹配
阅读量:6909 次
发布时间:2019-06-27

本文共 725 字,大约阅读时间需要 2 分钟。

又是一道字符串题,一下子难有思路,所以往动态规划方向思考。

找到动归思路不难,主要是要考虑各种情况。首先将pattern进行处理,记下不含"*"的字符串npattern,同时用一个vector记录新字符串里有哪几个字符是可以任意个数的(这里我本来以为像b*b*这样的要简化为b,后来发现简化为bb就可以,因为vector记下了这两个b都是可以任意个数的,因此在动归时无影响)。然后进行动归时需要注意初始化问题(prev[0]=1),同时需要注意如果开头有若干个字符可以有任意个数,但对它们进行动归后发现没有值得匹配的字符(数组rear中每个元素都是0),那么我们就不需要将prev和rear互换(因为可以将这些字符取0个),否则会出错。

1 class Solution { 2 public: 3     bool match(char* str, char* pattern) 4     { 5         vector
record; 6 int col=strlen(str)+1; 7 int* prev=new int[col]; 8 int* rear=new int[col]; 9 int len=strlen(pattern);10 char* npattern=new char[len+1];11 int row=0;12 for(int i=0;i
View Code

 

转载于:https://www.cnblogs.com/vaecn/p/5324620.html

你可能感兴趣的文章
cacti-0.8.8c 下安装realtime插件
查看>>
我的友情链接
查看>>
从0开始学大数据-Java基础开篇(1)
查看>>
github常用命令总结(一)
查看>>
Intent(意图)
查看>>
Exchange Server 2007迁移Exchange Server 2010 (2) ---前期准备之二
查看>>
翻译:Fast dynamic extracted honeypots in cloud computing --5.CONCLUSION
查看>>
Effective C++: constexpr(during compilation).
查看>>
TCP/IP协议三次握手流程
查看>>
了解Oracle内核代码层的作用
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Java学习笔记1-初始化的顺序
查看>>
开源Xen是如何衰落的?
查看>>
Pivot Table系列之切片器 (Slicer)
查看>>
windows下安装mysql5.6及基本命令
查看>>
jsp的九个内置对象简介
查看>>
用户如何获得***服务---步骤与效果
查看>>
学习沟通技巧--- SOFTEN法则与SOLER法则
查看>>
用户密码重设对EFS的影响
查看>>