博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
44. Wildcard Matching(js)
阅读量:4981 次
发布时间:2019-06-12

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

44. Wildcard Matching

Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for '?' and '*'.

'?' Matches any single character.'*' Matches any sequence of characters (including the empty sequence).

The matching should cover the entire input string (not partial).

Note:

  • s could be empty and contains only lowercase letters a-z.
  • p could be empty and contains only lowercase letters a-z, and characters like ? or *.

Example 1:

Input:s = "aa"p = "a"Output: falseExplanation: "a" does not match the entire string "aa".

Example 2:

Input:s = "aa"p = "*"Output: trueExplanation: '*' matches any sequence.

Example 3:

Input:s = "cb"p = "?a"Output: falseExplanation: '?' matches 'c', but the second letter is 'a', which does not match 'b'.

Example 4:

Input:s = "adceb"p = "*a*b"Output: trueExplanation: The first '*' matches the empty sequence, while the second '*' matches the substring "dce".

Example 5:

Input:s = "acdcb"p = "a*c?b"Output: false 题意:实现通配符的匹配是否合法 代码如下:
/** * @param {string} s * @param {string} p * @return {boolean} */var isMatch = function(s, p) {    var m=s.length,n=p.length;    var dp=[];    for(var i=0;i<=m;i++){        dp[i]=[];        for(var j=0;j<=n;j++){            dp[i][j]=false;        }    }    dp[0][0]=true;    for(var i=1;i<=n;i++){        if(p[i-1]==='*') dp[0][i]=dp[0][i-1];    }        for(var i=1;i<=m;i++){        for(var j=1;j<=n;j++){            if(p[j-1]==='*'){                dp[i][j]=dp[i-1][j] || dp[i][j-1];            }else{                dp[i][j]=(s[i-1]===p[j-1] || p[j-1]==='?') && dp[i-1][j-1];            }        }    }    return dp[m][n];};

 

转载于:https://www.cnblogs.com/xingguozhiming/p/10424936.html

你可能感兴趣的文章
52. N-Queens II
查看>>
ORA-01555错误总结(二)
查看>>
flask简单demo
查看>>
SSH
查看>>
卷积神经网络—第一周
查看>>
如何形容这份美?
查看>>
linux 新增硬盘分区格式化
查看>>
暴零狗的泉五之旅 8-21
查看>>
【bzoj2431】[HAOI2009]逆序对数列 dp
查看>>
7 天玩转 ASP.NET MVC — 第 6 天
查看>>
论互联网合并趋势之不一样的「合并」
查看>>
JAVA 反序列化攻击
查看>>
CF1153F Serval and Bonus Problem 【期望】
查看>>
HTML5+CSS4基础知识测试
查看>>
用户态和内核共享内存----使用 /dev/mem & mmap
查看>>
SQL存储过程异常处理
查看>>
软件测试思维导图
查看>>
JMeter压力测试入门教程[图文]
查看>>
shell 实例
查看>>
3分钟打动投资人:商业计划书篇
查看>>