萬用字元匹配 LeetCode44

2021-10-05 17:49:20 字數 740 閱讀 6349

給定乙個字串 ( s ) 和乙個字元模式 ( p ) ,實現乙個支援 『?』 和 『*』 的萬用字元匹配。

'?' 可以匹配任何單個字元。

'*' 可以匹配任意字串(包括空字串)。

兩個字串完全匹配才算匹配成功。

說明:

示例:

輸入:

s = "aa"

p = "*"

輸出: true

解釋: '*' 可以匹配任意字串。

dp陣列的含義:dp[i][j]表示字串中前i個字元和字元模式中前j個字元是否匹配。所以這裡的ij指的是長度,當然也可以用於表示索引,取值範圍就不同了。自己一定要明白給它賦予什麼含義,然後寫**的時候不要脫離這個含義即可。

初始條件:

狀態轉移方程:

**如下:

class

solution

// 狀態轉移

for(

int i =

1; i <= m; i++

)else

if(p.

charat

(j-1)==

'*')}}

return dp[m]

[n];

}}

dp 萬用字元匹配leetcode44

這一題是劍指offer裡面的題目,但是書本裡的解法自頂向下,不太好理解。假設string長度為s,pattern長度為p,設定狀態dp,為 dp s 1 p 1 狀態含義 dp i j 表示pattern的1到j位是否匹配s的1 i位 初始狀態 dp 0 0 1 dp 0 i p i dp 0 i ...

leetcode。 44 萬用字元匹配

實現乙個支援 和 的萬用字元匹配。匹配任何單個字元。匹配任何數量的字元 包括0個 匹配應覆蓋 整個 輸入字串 而不是部分 這個函式原型為 bool ismatch const char s,const char p 示例 ismatch aa a false ismatch aa aa true i...

LeetCode44 萬用字元匹配

題目描述 給定乙個字串 s 和乙個字元模式 p 實現乙個支援 和 的萬用字元匹配。可以匹配任何單個字元。可以匹配任意字串 包括空字串 兩個字串完全匹配才算匹配成功。說明 思路一 字串p是模式字串,字串s是待匹配字串,使用p對s進行匹配。聯想到編輯距離那道題,使用兩個指標i和j,i指向字串s的第i個字...