切換
舊版
前往
大廳
主題

ZeroJudge - e572: 連連看 解題心得

Not In My Back Yard | 2020-10-01 00:00:46 | 巴幣 2 | 人氣 173

題目連結:


題目大意:
輸入有多筆測試資料。測資第一列給定一正整數 N (1 ≦ N ≦ 100,當 N = 0 時代表輸入結束),代表有兩排並排(一排在上、一排在下)的中文字,每排 N 個字。

接著有兩列輸入,每列給定 N 個中文字,每個中文字之間以空白字元隔開,代表兩排文字的內容。

請將上排以及下排相同的文字盡量連起來,同時又要讓所有的連線皆不互相交錯。試問最大連線數為何?



範例輸入:
5
測 試 資 料 一
一 測 試 資 料
5
一 二 三 四 五
五 四 三 二 一
0


範例輸出:
4
1


解題思維:
兩個字串盡量將彼此相同的字母用線連接起來且不能交錯,要求最大連線數。此命題等價於求兩個字串的最長共同子序列(Longest Common Subsequence,LCS)。

LCS 的作法可以參見此題。只是要將字串的英文字母比對變為這邊的中文字比對。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作