a311: 基本演算法練習 - 最長連續共同子序列
標籤 : Basic Algorithm DP Dynamic Programming
通過比率 : 19人/23人 ( 83% ) [非即時]
評分方式:
Tolerant

最近更新 : 2025-02-24 03:30

內容

最長連續共同子序列定義如下:

給定兩序列 $S_1=\{x_1, x_2, x_3, x_4, \cdots\}$、$S_2=\{y_1, y_2, y_3, y_4, \cdots\}$,兩序列各自可分離出若干個連續子序列。若 $S_1 $ 存在一個連續子序列 $S_{1_{sub}} $ 並且 $S_2 $ 存在一個連續子序列 $S_{2_{sub}} $ 完全相等於 $S_{1_{sub}}$,則稱該連續子序列為兩序列 $S_1 $、$S_2 $ 的共同連續子序列。

其中連續子序列定義如下,若給定一序列 $Z=\{z_1, z_2, z_3, z_4, \cdots\}$,則可以找到一些序列 $Z_{sub} $ 滿足在不改變序列 $Z $ 元素順序的條件下刪除一些元素,並且每個元素在原序列中是連續的,即該連續子序列中的相鄰元素在原序列中也是相鄰的。

本題希望你可以寫出一個程式算出兩序列的最長連續共同子序列長度。

輸入說明

本題為多筆測資輸入。

每筆測資第一行輸入一字串代表序列 $S_1$ ,第二行輸入一字串代表序列 $S_2$ 。

兩序列均僅包含數字以及大寫英文字母,長度保證小於等於 $10^5$。

兩序列長度相乘結果必定小於等於 $5\times 10^8$。

輸出說明

輸出一整數代表兩序列的最長連續共同子序列長度並換行。

範例輸入
1RF0JRTST6
N0JRTDST61
SCHOOL
HAPPINESS
AAAAA
SSSSS
範例輸出
4
1
0


測資資訊:
記憶體限制: 16 MB
公開 測資點#0 (11%): 1.0s , <1K
公開 測資點#1 (11%): 1.0s , <1K
公開 測資點#2 (11%): 1.0s , <1M
公開 測資點#3 (11%): 2.0s , <1M
公開 測資點#4 (11%): 2.0s , <1M
公開 測資點#5 (11%): 2.0s , <1M
公開 測資點#6 (11%): 2.0s , <1M
公開 測資點#7 (11%): 1.0s , <1M
公開 測資點#8 (12%): 1.0s , <1M
提示 :

Ex. 序列 "RULE34" 的連續子序列有:

""

"R"、"U"、"L"、"E"、"3"、"4"

"RU"、"UL"、"LE"、"E3"、"34"

"RUL"、"ULE"、"LE3"、"E34"

"RULE"、"ULE3"、"LE34"

"RULE3"、"ULE34"

"RULE34"

共 22 個。

標籤:
Basic Algorithm DP Dynamic Programming
出處:
108學年度(下)復旦期末檢定考程式設計進階班FDCS 8th 進階教學 [管理者:
fdhs108rex (RexWu)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」