zoukankan      html  css  js  c++  java
  • leetcode-wildcard matching-ZZ

    http://yucoding.blogspot.com/2013/02/leetcode-question-123-wildcard-matching.html

    几个例子:

    (1)

    acbdeabd

    a*c*d

    (2)

    acbdeabdkadfa

    a*c*dfa

    Analysis:


    For each element in s
    If *s==*p or *p == ? which means this is a match, then goes to next element s++ p++.
    If p=='*', this is also a match, but one or many chars may be available, so let us save this *'s position and the matched s position.
    If not match, then we check if there is a * previously showed up,
           if there is no *,  return false;
           if there is an *,  we set current p to the next element of *, and set current s to the next saved s position.

    e.g.

    abed
    ?b*d**

    a=?, go on, b=b, go on,
    e=*, save * position star=3, save s position ss = 3, p++
    e!=d,  check if there was a *, yes, ss++, s=ss; p=star+1
    d=d, go on, meet the end.
    check the rest element in p, if all are *, true, else false;

    Note that in char array, the last is NOT NULL, to check the end, use  "*p"  or "*p==''".

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class Solution {
    public:
        bool isMatch(const char *s, const char *p) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
             
            const char* star=NULL;
            const char* ss=s;
            while (*s){
                if ((*p=='?')||(*p==*s)){s++;p++;continue;}
                if (*p=='*'){star=p++; ss=s;continue;}
                if (star){ p = star+1; s=++ss;continue;}
                return false;
            }
            while (*p=='*'){p++;}
            return !*p;
        }
    };
  • 相关阅读:
    Spring security中的BCryptPasswordEncoder方法对密码进行加密与密码匹配
    Eclipse导入SpringBoot项目pom.xml第一行报错Unknown error
    分库分表理论概述
    什么是乐观锁,什么是悲观锁
    oracle中的索引查看
    手动实现tail
    KNN理论
    矩阵以及向量
    numpy常用的几个小函数
    线性回归
  • 原文地址:https://www.cnblogs.com/forcheryl/p/4088573.html
Copyright © 2011-2022 走看看