第十一周演算法設計與分析leetcode作業

2021-09-01 06:29:14 字數 1729 閱讀 4898

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...