题目:
题目
这道题主要应用递归的思路来进行匹配,值得注意的是,在python里 and 操作的优先级是大于 or的,对递归不熟悉的朋友,不妨单步调试一下:
class Solution:
def isMatch(self, s, p):
"""
:type s: str
:type p: str
:rtype: bool
"""
in_str = s
pt = p
if not pt:
return not in_str
first_match = bool(in_str) and pt[0] in {in_str[0], '.'}
if len(pt) >= 2 and pt[1] == '*':
return (self.isMatch(in_str, pt[2:])
or first_match and self.isMatch(in_str[1:], pt))
else:
return first_match and self.isMatch(in_str[1:], pt[1:])
s = Solution()
print(s.isMatch("ab", "c*ab"))
ps:如果您有好的建议,欢迎交流 :-D,也欢迎访问我的个人博客:tundrazone.com
网友评论