題目連結:
題目大意:
輸入有多筆測試資料。測資第一列給定一正整數 N (1 ≦ N ≦ 100,當 N = 0 時代表輸入結束),代表有兩排並排(一排在上、一排在下)的中文字,每排 N 個字。
接著有兩列輸入,每列給定 N 個中文字,每個中文字之間以空白字元隔開,代表兩排文字的內容。
請將上排以及下排相同的文字盡量連起來,同時又要讓所有的連線皆不互相交錯。試問最大連線數為何?
範例輸入:
5
測 試 資 料 一
一 測 試 資 料
5
一 二 三 四 五
五 四 三 二 一
0
範例輸出:
4
1
解題思維:
兩個字串盡量將彼此相同的字母用線連接起來且不能交錯,要求最大連線數。此命題等價於求兩個字串的最長共同子序列(Longest Common Subsequence,LCS)。
LCS 的作法可以參見
此題。只是要將字串的英文字母比對變為這邊的中文字比對。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。