LeetCode題解(Offer19):正規表示式匹配的*和.實現(Python)
題目:原題連結(困難)
標籤:字串、動態規劃、動態規劃-狀態表格
解法 | 時間複雜度 | 空間複雜度 | 執行用時 |
---|---|---|---|
Ans 1 (Python) | O ( M × N ) O(M×N) O(M×N) | O ( M × N ) O(M×N) O(M×N) | 64ms (74.22%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一(動態規劃):
class Solution:
def isMatch(self, s: str, p: str) -> bool:
N1 = len(s)
N2 = len(p)
matrix = [[False] * (N2 + 1) for _ in range(N1 + 1)]
matrix[0][0] = True
for i in range(N1 + 1):
for j in range(1, N2 + 1):
if p[j - 1] == "*":
matrix[i][j] |= matrix[i][j - 2]
# print((i, j - 2), "->", (i, j))
if i > 0 and (p[j - 2] == "." or s[i - 1] == p[j - 2]):
matrix[i][j] |= matrix[i - 1][j]
# print((i - 1, j), "->", (i, j))
elif i > 0 and (p[j - 1] == "." or s[i - 1] == p[j - 1]):
matrix[i][j] |= matrix[i - 1][j - 1]
# print((i - 1, j - 1), "->", (i, j))
return matrix[N1][N2]
相關文章
- leetcode - 正規表示式匹配LeetCode
- python 正規表示式匹配Python
- leetcode題目10之正規表示式匹配LeetCode
- Leetcode 10. 正規表示式匹配LeetCode
- 正規表示式實現字元的模糊匹配功能示例字元
- LeetCode 不只是題解(10.正規表示式匹配[困難])LeetCode
- 正規表示式匹配原理
- [譯]正規表示式匹配
- 字串——正規表示式匹配字串
- iOS正規表示式匹配iOS
- LeetCode-10. 正規表示式匹配(Python-re包)LeetCodePython
- 正規表示式之python實現Python
- [LeetCode] Regular Expression Matching 正規表示式匹配LeetCodeExpress
- SITA報文解碼匹配的正規表示式
- PostgreSQL中的模式匹配和正規表示式 - DasSQL模式
- JS常用的匹配正規表示式和例項JS
- 正規表示式支配匹配模式模式
- JavaScript匹配中文正規表示式JavaScript
- 模式匹配與正規表示式模式
- Swift 正規表示式匹配NSRegularExpressionSwiftExpress
- 正規表示式教程之位置匹配詳解
- Python正規表示式匹配字串中的數字Python字串
- 匹配HTML註釋的正規表示式HTML
- 匹配A股程式碼的正規表示式
- 匹配HTML標籤的正規表示式HTML
- 匹配javascript註釋的正規表示式JavaScript
- Oracle正規表示式匹配中文的方法Oracle
- 匹配html標籤正規表示式HTML
- 匹配空白字元正規表示式字元
- 匹配 XML 檔案正規表示式XML
- 匹配 HTML 標籤正規表示式HTML
- 匹配空行正規表示式程式碼
- 常用正規表示式匹配模式(java)模式Java
- JavaScript匹配註釋正規表示式JavaScript
- JS實現正規表示式JS
- 詳解 Python 正規表示式Python
- Python正規表示式詳解Python
- [JavaScript] 正規表示式單次匹配與多次匹配JavaScript