国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

算法:正則表達(dá)式匹配

2022-07-13 11:10 作者:做架構(gòu)師不做框架師  | 我要投稿


請實(shí)現(xiàn)一個函數(shù)用來匹配包含'. '和'*'的正則表達(dá)式。模式中的字符'.'表示任意一個字符,而'*'表示它前面的字符可以出現(xiàn)任意次(含0次)。在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串"aaa"與模式"a.a"和"ab*ac*a"匹配,但與"aa.a"和"ab*a"均不匹配。

示例1

  • 輸入: s = "aa",p = "a"

  • 輸出: false

  • 解釋: "a" 無法匹配 "aa" 整個字符串。

示例2

  • 輸入: s = "aaa",p = "ab*.*"

  • 輸出: true

  • 解釋: 因?yàn)?'*' 表示零個或多個,這里 'b' 為 0 個, '.' 為 a , 重復(fù)2次。因此可以匹配字符串 "aaa"。

提示

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

  • p 可能為空,且只包含從 a-z 的小寫字母以及字符 . 和 *,無連續(xù)的 '*'。

方法:動態(tài)規(guī)劃

以示例2為例講解:

  • 初始化取 dp[0][0] = true,代表匹配成功;

  • 當(dāng)s取“a”的時候:p取“a”時候,成功;

  • p取“ab”的時候,失??;

  • p取“ab*”時候,*出現(xiàn) 0 次,即為 p 取 “a” 時候,成功;

  • p取“ab*.”的時候,失敗,因?yàn)?s 只有一個字母,“.” 可以是任意字母,不滿足;

  • p取“ab*.*”的時候,“.” 出現(xiàn) 0 次,“b”出現(xiàn) 0 次,成功。

  • 以此類推……


代碼如下:

復(fù)雜度分析

  • 時間復(fù)雜度:O(MN),其中 M,N 分別為 s 和 p 的長度,狀態(tài)轉(zhuǎn)移需遍歷整個 dp 矩陣。

  • 空間復(fù)雜度:O(MN),狀態(tài)矩陣 dp 使用 O(MN) 的額外空間。

END

本文內(nèi)容出處是力扣官網(wǎng),希望和大家一起刷算法,在后面的路上不變禿但是變強(qiáng)!

好兄弟可以點(diǎn)贊并關(guān)注我的公眾號“javaAnswer”,全部都是干貨。


算法:正則表達(dá)式匹配的評論 (共 條)

分享到微博請遵守國家法律
额尔古纳市| 仁布县| 东至县| 遵化市| 海阳市| 沂源县| 繁昌县| 南丹县| 扬中市| 随州市| 西充县| 康马县| 迁西县| 寿阳县| 怀安县| 卢氏县| 依安县| 山西省| 洛浦县| 贵港市| 运城市| 安丘市| 通州市| 云霄县| 湛江市| 漳浦县| 格尔木市| 磐石市| 龙海市| 天水市| 泾阳县| 富川| 台湾省| 轮台县| 滨州市| 朝阳市| 和静县| 余姚市| 高雄市| 徐州市| 星座|