27 lines
646 B
Python
27 lines
646 B
Python
from typing import List
|
|
|
|
|
|
class Solution:
|
|
def isMatch(self, s: str, p: str) -> bool:
|
|
i = j = 0
|
|
star = -1
|
|
match = 0
|
|
n, m = len(s), len(p)
|
|
while i < n:
|
|
if j < m and (p[j] == s[i] or p[j] == "?"):
|
|
i += 1
|
|
j += 1
|
|
elif j < m and p[j] == "*":
|
|
star = j
|
|
match = i
|
|
j += 1
|
|
elif star != -1:
|
|
j = star + 1
|
|
match += 1
|
|
i = match
|
|
else:
|
|
return False
|
|
while j < m and p[j] == "*":
|
|
j += 1
|
|
return j == m
|