首页 > 其他分享 >44.通配符匹配

44.通配符匹配

时间:2022-11-16 13:34:55浏览次数:41  
标签:ch 匹配 int 44 通配符 bool dp size

算法

  1. 集合:所有S[1~i]和P[1~j]的匹配方案
  2. 属性:是否存在一个合法方案(bool)
  3. 如果p[j] != '*',dp[i][j] = dp[i-1][j-1] && (s[i]==p[j] || p[j]=='?')
  4. 如果p[j] == '*',dp[i][j] = dp[i][j - 1] || dp[i-1][j-1] || dp[i-2][j-1] || dp[i-3][j-1]...

代码

class Solution {
public:
    bool isMatch(string s, string p) {
        s = ' ' + s, p = ' ' + p;
        int n = s.size(), m = p.size();
        vector<vector<bool>> dp(n, vector<bool>(m));
        dp[0][0] = true;
        for(int i = 0; i < n; i++)
            for(int j = 1; j < m; j++)
            {
                char ch = p[j];
                if(ch != '*')
                {
                    if(i && (s[i] == ch || ch == '?'))
                        dp[i][j] = dp[i - 1][j - 1];
                }
                else
                {
                    dp[i][j] = dp[i][j - 1];
                    if(i) dp[i][j] = dp[i][j] || dp[i - 1][j];
                }
            }
        return dp[n - 1][m - 1];
    }
};

标签:ch,匹配,int,44,通配符,bool,dp,size
From: https://www.cnblogs.com/INnoVationv2/p/16895567.html

相关文章

  • 使用 Git 代理来解决 GitHub git 443: Timed out的报错
    由于GitHub目前在国内半墙不墙的状态,我们在从GitHub上push或者pull都很容易卡住甚至出现git443:Timedout的报错。报错如下Failedtoconnecttogithub.com......
  • 448. 找到所有数组中消失的数字 ----- 原地哈希、巧妙自用
    给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,并以数组的形式返回结果。 示例1:输入:nums......
  • Python匹配同名不同后缀的文件
    是这样的,之前手机备份图片到电脑,由于苹果拍照开了Live模式,所以它导出的图片有一个2秒的视频(.mov)跟一张静态图(.jpg/.heic),静态图输出取决当时导出的选项。现在想恢......
  • 并发上传md5值不匹配解决方法
    因为同步分片上传对于大文件非常耗时,如果并发上传定会出现乱序,而某些厂商的云盘没有对分片并发上传做相应处理,导致上传后的文件与原文件md5值不匹配。以下给出我对此问题......
  • 阻抗匹配-转载
    分享笔记之阻抗匹配-立创社区(szlcsc.com)阻抗匹配 阻抗:在具有电阻、电感和电容的电路里,对电路中的电流所起的阻碍作用叫做阻抗。在设计电子电路时都需要考虑阻抗匹......
  • 44. 通配符匹配
    题目描述这个题目和之前做的「10.正则表达式匹配」比较类似,不同的是和?没有关联关系,只用考虑匹配0-多次就行f1-折半枚举+排序+二分基本分析只需要考虑不同的地方,对于*......
  • [已满分在线评测] cmu15445 2022 PROJECT #2 B+Tree Index
    CMU154452022PROJECT#2B+TreeIndex前前言本地测试通过是真的比较简单,因为有数据可以单步debug,很快就能定位错误。但是要通过在线评测还是比较痛苦的,没有数据,没办法......
  • 28. 找出字符串中第一个匹配项的下标
    28.找出字符串中第一个匹配项的下标给你两个字符串 haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果 nee......
  • nginx中的location匹配与rewrite重写跳转
    nginx正则表达式^:匹配输入字符串的起始位置$:匹配输入字符串的结束位置*:匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”+:匹配前面的字符一次或......
  • [15-445]B+Tree memo
    B树是一个家族,感觉B+Tree对于喜欢使用MySQL的我来说是最常听说的数据库索引结构之一了。但是我从来没有从头到尾自己实现过一个B+Tree,像类似的数据结构,感觉不真正自......