#42991: C++詳解


toseanlin@gmail.com (Dr. SeanXD)

學校 : 康橋雙語學校
編號 : 158065
來源 : [24.147.249.5]
最後登入時間 :
2024-10-28 09:54:40
a252. Another LCS -- 2011成功高中校內賽初賽第三題 | From: [24.147.249.5] | 發表日期 : 2024-10-14 21:37

假設三個字串分別為 a、b、c,宣告一個三維陣列,並且跑一個 a.length()*b.length()*c.length() 的 For 迴圈,如果 目前跑到的三個字元相等,則要判斷使否有任一數值是第一個,也就是 0,如果 i、j、k 有一個是 0 的話,則將 三維陣列[i][j][k] 設為 1,否則將 三維陣列[i][j][k] 設為 三維陣列[i-1][j-1][k-1]。

如果兩數不相等,則也要判斷 i、j、k 是否有 0,如果都不是的話就是將 三維陣列[i][j][k] 設為 三維陣列[i-1][j-1][k-1]。除此之外還要判斷只有 i、j、k 其中一個或兩個等於 0 的情況,這種情況就是將數值設為不是 0 的那邊 -1 位置。如果都是 0 的話就將 三維陣列[i][j][k] 設為 0。

最後的答案就是 三維陣列[a.length()-1][b.length()-1][c.length()-1]。

 

範例程式碼

 
ZeroJudge Forum