LeetCode第十題 正規表示式匹配

2021-09-18 07:07:46 字數 1125 閱讀 1896

regular expression matching

問題簡介:給定字串,給定匹配模式,判斷字串是否滿足匹配模式

問題詳解:一共有兩種特殊模式:

『.』 匹配任何單個字元

『*』 匹配前面元素的零個或多個

注:匹配的是整個給定字串,不是部分

舉例:1:

輸入:s = 「aa」

p = 「a」

輸出: false

解釋: 「a」 不匹配 「aa」.

2:輸入:

s = 「aa」

p = 「a*」

輸出: true

解釋: 『*』 代表 0 或多個字元 『a』

3:輸入:

s = 「ab」

p = 「."

輸出: true

解釋: ".」 代表 0 或多個任意字元

4:輸入:

s = 「aab」

p = 「cab」

輸出: true

5:輸入:

s = 「mississippi」

p = 「misisp*.」

輸出: false

解法一:遞迴

先判斷輸入模式,當模式為空時,只判斷輸入文字是否為空即可

將輸入文字與模式逐字元匹配,當碰到特殊符號』.『時相當於匹配任何字元,碰到』*'時則改變字串進入遞迴下一次判斷

class solution  else 

}}

解法二:dynamic programming

進行解法一的遞迴,我們採取快取中間結果來節省建立字串的空間

enum result 

class solution

public boolean dp(int i, int j, string text, string pattern)

boolean ans;

if (j == pattern.length()) else else

}memo[i][j] = ans ? result.true : result.false;

return ans;

}}

小白刷題之路,請多指教— — 要麼大器晚成,要麼石沉大海

LeetCode第十題 Python實現

title leetcode no.10 categories tags 給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。匹配任意單個字元 匹配零個或多個前面的那乙個元素 所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。示例 1 輸入 s aa p a 輸出 f...

23號第十題

小兔的叔叔從外面旅遊回來給她帶來了乙個禮物,小兔高興地跑回自己的房間,拆開一看是乙個棋盤,小兔有所失望。不過沒過幾天發現了棋盤的好玩之處。從起點 0,0 走到終點 n,n 的最短路徑數是c 2n,n 現在小兔又想如果不穿越對角線 但可接觸對角線上的格點 這樣的路徑數有多少?小兔想了很長時間都沒想出來...

尤拉計畫 第十題

the sum of the primes below 10 is 2 3 5 7 17.find the sum of all the primes below two million.低於10的素數之和為2 3 5 7 17。找出200萬以下所有素數的總和。思路這道題與第7題的線性篩思路一樣,只...