当前位置: 首页 > news >正文

网站模板免费推荐网站建设有没有

网站模板免费推荐,网站建设有没有,wordpress+论坛类,网页设计网站怎么做2023.9.20 感觉是目前做过dp题里最难的一题了... 本题首要的就是需要理解题意,翻了评论区我才发现之前一直理解的题意是错的。 我原来理解的 “ *匹配0次” 是指:*直接消失,不会影响到前面的字符。 但是*和前一个字符其实是连体的&#xff0…

2023.9.20

        感觉是目前做过dp题里最难的一题了...

        本题首要的就是需要理解题意,翻了评论区我才发现之前一直理解的题意是错的。 我原来理解的 “ *匹配0次” 是指:*直接消失,不会影响到前面的字符。  但是*和前一个字符其实是连体的,所以说:*如果匹配0次,那么前一个字符就没了,消失了;*如果匹配1次,那么才相当于*消失了,不影响前面的字符;也就是说: *如果匹配n次,相当于前一个字符会出现n次。

        理解了题意之后再来用dp算法做这道题。本题用的是二维bool型dp数组,dp[i][j]含义是:字符串s的前i个字符 和 字符串p的前j个字符 能否匹配。

        再来看核心的递推公式。遍历的时候分为两种情况:

①s和p 的当前字符相等(这个相等包括p的当前字符是“_”,也算一种相等嘛!):那么可以想象一下,当前这两个字符相等了,像消消乐一样两字符消掉,两个指针各退一步,指向各自的前一个字符,当前dp数组的状态 转化为 之前dp数组的状态。即:dp[i][j] = dp[i - 1][j - 1];

②s和p 的当前字符不相等:两字符不相等了,还有补救措施,那就是p的字符如果为*的话,还有机会匹配。 那么此时又分为两种子情况:

  • 当p的当前字符为"*"时:此时需要先判断一下*前面的字符和s的当前字符相不相等。如果不相等,说明*只能带着前面的字符一起消失了,即匹配0个:dp[i][j] = dp[i][j - 2];  如果相等的话:那么*可以匹配0次、也可以匹配1次、也可以匹配多次,即dp[i][j] = dp[i][j - 1] || dp[i][j - 2] || dp[i - 1][j];
  • 当p的当前字符不为“*”时:那么直接就是false就行了,不过构建dp数组时是将所有位置都初始化为false了,所以这一步可以省略。

        最后,dp[0][0]需要初始化为true,因为空字符串肯定是能匹配的嘛! 但是运行的时候有一个案例通不过:s=“aab”,p=“c*a*b” 。 翻看了评论区:有个方法就是分别在s和p之前加个空格:即

        s = " " + s;

        p = " " + p;

        最后上代码:

class Solution {
public:bool isMatch(string s, string p) {s = " " + s; p = " " + p;vector<vector<bool>> dp(s.size() + 1, vector<bool>(p.size() + 1, false));dp[0][0] = true;for (int i = 1; i <= s.size(); i++) {for (int j = 1; j <= p.size(); j++) {//字符相同,或者p字符有万能符号。 (万能符号也可以理解为两字符相等)if (s[i - 1] == p[j - 1] || p[j - 1] == '.') {dp[i][j] = dp[i - 1][j - 1];} else if (p[j - 1] == '*') {if (s[i - 1] == p[j - 2] || p[j - 2] == '.') {dp[i][j] = dp[i][j - 1] || dp[i][j - 2] || dp[i - 1][j];//分别对应*匹配1次、0次、多次的情况。} else {dp[i][j] = dp[i][j - 2]; //p字符串*号前面的字符 和 s字符串当前字符 不相等,只能让*匹配0次。}}}}return dp[s.size()][p.size()];}
};

        

http://www.yayakq.cn/news/794394/

相关文章:

  • 网站制作免费网站知识网站
  • 建站公司佛山网站设计高端网站设计
  • 网站页头企业做网站时应注意的事项
  • 申请免费域名邮箱杭州优化网站
  • 谁会制作网站排名推广网站
  • 银行官方网站网址大全最新排行榜
  • 汽车4s网站设计wordpress 4.8 pdf缩略图
  • 网站目录在哪里wordpress字体不能换行
  • 济南专业网站制作公司网站怎么规范管理的
  • 南昌网站搭建服务怎样申请网站空间
  • 网上做网站网站代理网页布局有哪些
  • 工业智能科技网站设计建设一个购物网站需要多少钱
  • 自己做国际网站交流平台网站架构怎么做
  • 胶南做网站灵感设计网站
  • 部队网站建设总结wordpress注册时候卡住
  • 扬州网站建设suteng网络推广营销方法
  • 华亚快印网站开发做旅游网站需要什么
  • 网站栏目建设图全国做旅游开发的公司
  • 做国际网站怎么能快速打开哪个网站做初中英语试题赚钱
  • 临沂住房和城乡建设局网站打不开太原网站seo外包
  • 北京企业建站公司化妆品网站的搭建
  • 咸阳网站设计申请做网站_论坛版主
  • 交互式网站定义网站建设找伟杨科技
  • 番禺建设网站公司排名网站建设项目组织结构图
  • 一站式商家服务平台vr网站建设
  • 外贸公司 如何做公司网站成交型网站建设价格
  • 买网站源码的网站wordpress自定义分类调用
  • 网站鼠标特效网站建设硬件环境
  • 怀化冰山涯IT网站建设公司微商城网站建设行情
  • 淘宝客做二级域名网站电子商务网站体系结构有哪些