LeetCode 44 萬用字元匹配
給定一個字串 (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
解題思路:
我們用i和j分別標記s和p的第一個字元下標,即都初始化為0。用istart和jstart分別標記s和p中'*'匹配過的位置,即初始化為-1。
和普通字串匹配的思路差不多,已經匹配成功的部分就不再考慮了,所以要用i和j標記當前正在比較的字元;但是最近匹配過的'*'可能會被重複使用去匹配更多的字元,所以我們要用istart和jstart分別標記s和p中最近匹配過'*'的位置。
相關文章
- LeetCode刷題記126-44. 萬用字元匹配LeetCode字元
- Python3 - 用Shell萬用字元匹配字串Python字元字串
- OpenJudge 帶萬用字元的字串匹配字元字串匹配
- Excel 2010 SQL應用032 字元範圍的模糊匹配查詢ExcelSQL字元
- 正則匹配指定字元之前的字串字元字串
- 匹配空白字元正規表示式字元
- php正則匹配所有違規字元PHP字元
- leetcode - 正規表示式匹配LeetCode
- 正規表示式匹配雙位元組字元字元
- 【python技巧】文字處理-re庫字元匹配Python字元
- 匹配純英文字元正規表示式字元
- Linux 中grep命令如何匹配中文字元Linux字元
- 萬用字元詳解字元
- LeetCode 3: PairsOfParentheses (括號匹配問題)LeetCodeAI
- Leetcode 10. 正規表示式匹配LeetCode
- 【leetcode】28. Implement strStr() 字串匹配KMP BMLeetCode字串匹配KMP
- RabbitMQ-萬用字元模式MQ字元模式
- 命令列萬用字元教程命令列字元
- Ubuntu萬用字元的使用Ubuntu字元
- dataframe 萬用字元篩選字元
- 20241108,LeetCode 每日一題,用 Go 計算字串中最長無重複字元LeetCode每日一題Go字串字元
- Python-網頁轉義字元及正則全文匹配Python網頁字元
- 匹配純小寫英文字元正則程式碼字元
- 正規表示式教程之匹配一組字元詳解字元
- 正規表示式實現字元的模糊匹配功能示例字元
- 正規表示式教程之匹配單個字元詳解字元
- LeetCode 每日一題「判定字元是否唯一」LeetCode每日一題字元
- leetcode題目10之正規表示式匹配LeetCode
- [Leetcode]44.跳躍遊戲Ⅰ&&45.跳躍遊戲ⅡLeetCode遊戲
- 萬用字元與特殊符號字元符號
- shell命令中的萬用字元字元
- 匹配字母、數字和中文字元正規表示式字元
- 在C語言中,匹配字元一定要用單引號!!!C語言字元
- LeetCode——無重複字元的最長子串LeetCode字元
- 萬用字元 and [] 中括號的用法字元
- SQL語法之SQL 萬用字元SQL字元
- Java 泛型中的萬用字元Java泛型字元
- leetcode 之無重複字元的最長子串LeetCode字元