leetcode習題集 44 萬用字元匹配

2021-09-18 02:40:56 字數 1557 閱讀 3478

給定乙個字串 (s) 和乙個字元模式 (p) ,實現乙個支援'?''*'的萬用字元匹配。

'?'可以匹配任何單個字元。

'*'可以匹配任意字串(包括空字串)。

兩個字串完全匹配才算匹配成功。

說明:s可能為空,且只包含從a-z的小寫字母。

p可能為空,且只包含從a-z的小寫字母,以及字元?*

示例 1:

輸入:s = 「aa」

p = 「a」

輸出: false

解釋: 「a」 無法匹配 「aa」 整個字串。

示例 2:

輸入:s = 「aa」

p = " * "

輸出: true

解釋: 』 * 』 可以匹配任意字串。

示例 3:

輸入:s = 「cb」

p = 「?a」

輸出: false

解釋: 『?』 可以匹配 『c』, 但第二個 『a』 無法匹配 『b』。

示例 4:

輸入:s = 「adceb」

p = " * a * b"

輸出: true

解釋: 第乙個 『』 可以匹配空字串, 第二個 '』 可以匹配字串 「dce」.

示例 5:

輸入:s = 「acdcb」

p = 「a*c?b」

輸入: false

public

class

p44_wildcardmatching

else}}

return m[sl]

[pl];}

}

思路:見 10.正規表示式匹配

此題略有不同的是,'*'不需要前面字元的引導,直接匹配任何字串,和正規表示式中的'.*'差不多。

1.p的第j位等於'*',即p.charat(j-1) = 『*』:

2. p的第j位不等於'*',即p.charat(j-1) = 『x』(x為任意字元)或p.charat(j-1) = 『?』:

Leetcode習題集 鍊錶

這裡記錄一些我刷題的思路方便之後進行複習重溫,同時也方便進行新增 p141 環形鍊錶 class solution listnode reverse listnode head return pre 使用翻轉鍊錶,判斷返回的指標與傳進的指標是否相同,時間複雜度是o n 可能 空間複雜度是o 1 cl...

leetcode習題集 54 螺旋矩陣

給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11...

leetcode習題集 56 合併區間

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。public...