zoukankan      html  css  js  c++  java
  • [leetcode 44] Wildcard Matching

        

          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).
       The function prototype should be:
       bool isMatch(const char *s, const char *p)
       Some examples:
       isMatch("aa","a") → false
       isMatch("aa","aa") → true
       isMatch("aaa","aa") → false
      isMatch("aa", "*") → true
      isMatch("aa", "a*") → true
      isMatch("ab", "?*") → true
      isMatch("aab", "c*a*b") → false

      类似于正則表達式的匹配,当中两个字符串为空为true。当中'?

    '不能够替换空串,'*'能够替换空串。

      AC代码:

    class Solution
    {
    public:
        bool isMatch(string s, string p)
        {
            int len1=s.size();
            int len2=p.size();
            if(len1==0&&len2==0)
                return true;
            else if(len1==0)
            {
                int i=0;
                while(i<len2)
                {
                    if(p[i]!='*')
                        return false;
                    else
                        ++i;
                }
                return true;
            }
            else if(len2==0)
                return false;
            else
            {
                int i=0;
                int j=0;
                int pos_s=-1;
                int pos_p=-1;
                while(i<len1)
                {
                    if(j<len2&&(s[i]==p[j]||p[j]=='?

    ')) { ++i; ++j; } else if(j<len2&&p[j]=='*') { pos_s=i; pos_p=j; ++j; } else if(pos_p!=-1) { i=++pos_s; j=pos_p+1; // ++pos_s; } else return false; } while(j<len2&&(p[j]=='*')) ++j; if(j==len2) return true; else return false; } } };



    其它Leetcode题目AC代码:https://github.com/PoughER/leetcode

  • 相关阅读:
    正则表达式
    linux中的三种时间
    用户,用户组
    inode与block
    linux文件属性
    linux的启动过程
    linux的重要子目录
    mail邮箱
    spark原理
    spark部署
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7092808.html
Copyright © 2011-2022 走看看