給定乙個字串 (s) 和乙個字元模式 §。實現支援 『.』 和 『*』 的正規表示式匹配。
『.』 匹配任意單個字元。
『*』 匹配零個或多個前面的元素。
匹配應該覆蓋整個字串 (s) ,而不是部分字串。
說明:s 可能為空,且只包含從 a-z 的小寫字母。
p 可能為空,且只包含從 a-z 的小寫字母,以及字元 . 和 *。
示例 1:
輸入:s = 「aa」
p = 「a」
輸出: false
解釋: 「a」 無法匹配 「aa」 整個字串。
示例 2:
輸入:s = 「aa」
p = 「a*」
輸出: true
解釋: 『*』 代表可匹配零個或多個前面的元素, 即可以匹配 『a』 。因此, 重複 『a』 一次, 字串可變為 「aa」。
示例 3:
輸入:s = 「ab」
p = 「."
輸出: true
解釋: ".」 表示可匹配零個或多個(』*』)任意字元(』.』)。
示例 4:
輸入:s = 「aab」
p = 「cab」
輸出: true
解釋: 『c』 可以不被重複, 『a』 可以被重複一次。因此可以匹配字串 「aab」。
示例 5:
輸入:s = 「mississippi」
p = 「misisp*.」
輸出: false
**展示:
class solution:
def ismatch(self, s, p):
""":type s: str
:type p: str
:rtype: bool
"""i, j = 0, 0
dp = [ [ false for _ in range(len(p)+1) ] for __ in range(len(s)+1) ]
dp[len(s)][len(p)] = true
for i in range(len(s),-1,-1):
j = len(p)-1
while j >= 0:
if p[j] == '*':
j-=1
dp[i][j] = dp[i][j+2] \
or (ior (ielif i < len(s):
dp[i][j] = ( s[i] == p[j] and dp[i+1][j+1] ) \
or (p[j] == '.' and dp[i+1][j+1])
j -= 1
return dp[0][0]
LeetCode 刷題記錄(10)
這幾天拯救世界去了 就是偷懶了 一直沒更博。這次練習的是leetcode上標籤為動態規劃 列表為熱題top100 難度為中等的幾道題目。題解有官方題解也有個人題解,有的地方意思可能表達得不是很清楚也可能存在錯誤,有問題請提出,感謝 題目描述 給定乙個整數 n,求以 1 n 為節點組成的二叉搜尋樹有多...
python學習記錄 10
測試題 0.列表都可以存放一些什麼東西?字串 數值 列表 1.向列表增加元素有哪些方法?4.有列表 name f i h c 如果小甲魚想要在元素 i 和 h 之間插入元素 s 應該使用什麼方法來插入?insert 2,s 動動手 0.自己動手試試看,並分析在這種情況下,向列表新增資料應當採用哪種方...
linux學習記錄10
ssh 遠端控制 建立網絡卡模板 命令 nmcli connection show 檢視網絡卡資訊 點選虛擬機器的虛擬網路編輯器 選vm1 點選使用本地dhcp 確定 nmcli connection add con name company ifname eno16777728 autoconne...