給定乙個字串 ( s ) 和乙個字元模式 ( p ) ,實現乙個支援 『?』 和 『*』 的萬用字元匹配。
兩個字串完全匹配才算匹配成功。'?' 可以匹配任何單個字元。
'*' 可以匹配任意字串(包括空字串)。
說明:
示例:
dp陣列的含義:輸入:
s = "aa"
p = "*"
輸出: true
解釋: '*' 可以匹配任意字串。
dp[i][j]
表示字串中前i
個字元和字元模式中前j
個字元是否匹配。所以這裡的i
和j
指的是長度,當然也可以用於表示索引,取值範圍就不同了。自己一定要明白給它賦予什麼含義,然後寫**的時候不要脫離這個含義即可。
初始條件:
狀態轉移方程:
**如下:
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個字...