wildcard matching
difficulty:hard
total accepted:148.7k
total submissions:680.8k
given an input string (s) and a pattern §, implement wildcard pattern matching with support for 『?』 and 『*』.
'?' matches any single character.
'*' matches any sequence of characters (including the empty sequence).
the matching should cover the entire input string (not partial).
note:
input:
s = "aa"
p = "a"
output: false
explanation: "a" does not match the entire string "aa".
example 2:
input:
s = "aa"
p = "*"
output: true
explanation: '*' matches any sequence.
example 3:
input:
s = "cb"
p = "?a"
output: false
explanation: '?' matches 'c', but the second letter is 'a', which does not match 'b'.
example 4:
input:
s = "adceb"
p = "*a*b"
output: true
explanation: the first '*' matches the empty sequence, while the second '*' matches the substring "dce".
example 5:
input:
s = "acdcb"
p = "a*c?b"
output: false
演算法一看就比較像可以用動態規劃解決的問題,因為狀態比較好劃分而且狀態與狀態之間可以畫圖連線找關係,因此就決定用dp方式解決。
綜上,就可以寫出下面的程式了~
class solution
} //result[i][j]表示p前i個和s前j個是否匹配
//先初始化第一行除了第乙個其他為false;
result[0][0] = true;
//先初始化第一列
for (int i = 1; i < resultx; i++)
} for (int i = 1; i < resultx; i++)
else if(p[i-1]=='*')} }
} return result[resultx-1][resulty-1];
}};static const auto io_sync_off = ()
();
演算法設計課第十一周作業
一開始看到這道題想到的是高中的時候學的排列組合問題,但是用排列組合的方法來解決太過於複雜了,不僅時間複雜度比較高,而且過程中空間占用比較大,很可能會溢位。經過分析發現這是乙個基本的dp問題。由於機械人只能左右移動,當它到達乙個點時,只有兩種可能 因此,我們得到以下狀態方程 假設到達點 i,j 的路徑...
OSG VS 第十一周
成果總結 1.關於獲取模型的世界座標 問了師姐,師姐給我講解了一些模型結構上的東西,指了個大致方向,說實話半懂不懂,回來自己試了試,沒有成功。正巧經理來跟我討論下一步的計畫,我就跟他講了座標的問題。第二天他告訴我說,目前沒有現成的介面可以用 他也跟師姐討論了,獲取頂點座標之後再區分有效可用的,很麻煩...
第十一周作業
1 tabcontrol imagelist panel功能演示 2 timer picturebox splitcontainer contextmenustrip控制項功能演示 設定三個控制項的以下屬性和事件 a.picturebox控制項的三個屬性 picture.image 匯入資源 pic...