LeedCode 萬用字元匹配

2021-10-02 15:21:38 字數 943 閱讀 5395

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

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

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

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

輸入:

s = 「aa」

p = 「a」

輸出: false

解釋: 「a」 無法匹配 「aa」 整個字串。

分析:狀態 dp[i][j] : 表示 s 的前 i 個字元和 p 的前 j 個字元是否匹配 (true 的話表示匹配)

狀態轉移方程:

1. 當 s[i] == p[j],或者 p[j] == ? 那麼 dp[i][j] = dp[i - 1][j - 1];

2. 當 p[j] == * 那麼 dp[i][j] = dp[i][j - 1] || dp[i - 1][j] 其中:

dp[i][j - 1] 表示 * 代表的是空字元,例如 ab, ab*

dp[i - 1][j] 表示 * 代表的是非空字元,例如 abcd, ab*

初始化:

1. dp[0][0] 表示什麼都沒有,其值為 true

2. 第一行 dp[0][j],換句話說,s 為空,與 p 匹配,所以只要 p 開始為 * 才為 true

3. 第一列 dp[i][0],當然全部為 false

bool

ismatch2

(string s, string p)

for(

int i =

1; i )else

if(p[j-1]

=='*')}

}return res[ns -1]

[np -1]

;}

萬用字元匹配

implement wildcard pattern matching with support for and matches any single character.matches any sequence of characters including the empty sequence ...

萬用字元匹配

給定乙個輸入字串s 和模式p,p包含萬用字元?與星號 其中輸入s包含小寫字母a z,p包含小寫字母a z與?和星號,可以匹配任一字元,星號 可以匹配多個字元,包括空字元。給定輸入s與p,判斷s 與 p是否完全匹配。example 1 input s aa p a output false expla...

萬用字元匹配

1.遇到s和p都是 則直接返回true 2.判斷邊界條件如果s串已經遍歷完畢,則判斷p串是否便利完畢,如果p串長度大於s串,則判斷大於部分是否都是 如果是則返回true,否則返回false 3.判斷邊界條件如果p串已經便利完畢,則判斷s串是否便利完畢,是則返回true,否則返回false 4.判斷字...