Wildcard Matching
要点:
- 基本code pattern是以待匹配string s为中心loop,一旦没有任何p的分支match,返回false。如果所有s匹配了,还要检查是不是p也exhausted,一种分支是剩下的p是’*’,这样也可以匹配。
- worst case: s: abcd, p: efgh? every *, it swallows all abcd. so it O(n^2)
错误点:
- star和ss:star对应的是’*’这点在pattern中的位置,ss对应的是在上次没有swallow的s点的位置。实际上是记录了可以restore的状态
class Solution(object): def isMatch(self, s, p): """ :type s: str :type p: str :rtype: bool """ i,j = 0,0 ss = -1 star = -1 while i