zoukankan      html  css  js  c++  java
  • 44. Wildcard Matching(js)

    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: false
    Explanation: "a" does not match the entire string "aa".
    

    Example 2:

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

    Example 3:

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

    Example 4:

    Input:
    s = "adceb"
    p = "*a*b"
    Output: true
    Explanation: 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];
    };
  • 相关阅读:
    微信公众号分析
    微信自动聊天机器人
    使用itchat分析自己的微信(1)
    内容补充 ----- 易错点
    运算符优先级
    亡羊补牢系列之字符串格式化
    亡羊补牢之python基础语法
    python基础,构建一个301个字典库
    mysql每个表总的索引大小
    mysql 查看单个表每个索引的大小
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/10424936.html
Copyright © 2011-2022 走看看