比较两个字符串是否匹配,由于有".","*"等特殊字符可通过递归或动态规划的方式求解,
递归:
- 当模式串 p[0] == s[0] or p[0] == "."时,s及p指针向前移动,
- 当p[0] == s[0] and p[1] == "*"时,
2.1 s可移动一位,p匹配且不移动(匹配1...n位),直到 s[0] != p[0]
2.2 s不移动,p匹配 0 位
代码(参考大佬写法)def match(self , s , p ): # write code here if not p: return not s f = bool(s) and p[0] in [s[0], "."] if len(p) > 1 and p[1] == "*": return self.match(s, p[2:]) or (f and self.match(s[1:], p)) else: return f and self.match(s[1:], p[1:])