leecode44:通配符匹配

題目:給定一個字符串 (s) 和一個字符模式 (p) ,實現(xiàn)一個支持 '?' 和 '*' 的通配符匹配。

'?' 可以匹配任何單個字符。
'*' 可以匹配任意字符串(包括空字符串)。
兩個字符串完全匹配才算匹配成功。

說明:

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 = "ab"
輸出: true
解釋: 第一個 '' 可以匹配空字符串, 第二個 '' 可以匹配字符串 "dce".
示例 5:

輸入:
s = "acdcb"
p = "a*c?b"
輸入: fals

解法:
var isMatch = function(s, p) {
  let cur = new Array(s.length + 1).fill(false)
  cur[0] = true
  
  for (const c of p) {
    if (c == '*'){
      let begin = cur.indexOf(true)
      if (begin == -1) {
        return false
      }
      cur.fill(true, begin)
    } else {
      for(let j = s.length;j > 0; --j){
        cur[j] = (c == '?' || c == s[j-1]) && cur[j-1]
      }
      cur[0] = false
    }

  }
  return cur[s.length]

};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,695評論 0 5
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,992評論 0 2
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,663評論 0 4
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,294評論 0 17
  • 一句醞釀已久的話 渴望得到回答 鋪開月光 蘸著黑夜 悄悄地為你寫下一句話 塞進蓄謀已久的黃昏里 在黎明來臨前 告訴...
    息為閱讀 304評論 0 0

友情鏈接更多精彩內(nèi)容