給定乙個字串 (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...