給定乙個字串 (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.判斷字...