Leetcode||44. Wildcard Matching

来源:互联网 发布:淘宝店运营方案怎么写 编辑:程序博客网 时间:2024/06/07 22:09

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") → falseisMatch("aa","aa") → trueisMatch("aaa","aa") → falseisMatch("aa", "*") → trueisMatch("aa", "a*") → trueisMatch("ab", "?*") → trueisMatch("aab", "c*a*b") → false
一个动态规划的做法,两组str,对比匹配。

class Solution(object):    def isMatch(self, s, p):        """        :type s: str        :type p: str        :rtype: bool        """        i = 0        j = 0        s_star = 0        star = -1        while i < len(s):        if j < len(p) and (s[i] == p[j] or p[j] == '?'):        i += 1        j += 1        elif j < len(p) and p[j] == '*':        star = j        j += 1        s_star = i        elif star != -1:        j = star + 1        s_star += 1        i = s_star        else:        return False        while j < len(p) and p[j] == '*':        j += 1        if  j == len(p):        return True        pass        return False


原创粉丝点击