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

最近更新 : 2020-02-09 17:11

內容

        最長共同子序列定義如下:如有兩序列 $S_1$ 、 $S_2$ ,兩序列各自可分離出若干個子序列。若 $S_1$ 存在一個子序列 $S_{1_{sub}}$ 並且 $S_2$ 存在一個子序列 $S_{2_{sub}}$ 完全相等於 $S_{1_{sub}}$ ,則稱該子序列為兩序列 $S_1$ 、 $S_2$ 的共同子序列。

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

輸入說明

本題為多筆測資輸入。

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

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

輸出說明

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

範例輸入
CORONAVIRUS
WUHAN
AAAAA
SSSSS
C8763
486
3678C
486

範例輸出
1
0
2
1

測資資訊:
記憶體限制: 16 MB
公開 測資點#0 (9%): 1.0s , <1K
公開 測資點#1 (16%): 1.0s , <1M
公開 測資點#2 (16%): 1.0s , <1M
公開 測資點#3 (18%): 1.0s , <1M
公開 測資點#4 (20%): 1.0s , <1M
公開 測資點#5 (21%): 1.0s , <1M
提示 :

子序列定義如下:在不違反原序列的順序之下,挑出任意個元素重新形成的有序元素列。

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

""

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

"RU"、"RL"、"RE"、"R3"、"R4"、"UL"、"UE"、"U3"、"U4"、"LE"、"L3"、"L4"、"E3"、"E4"、"34"

"RUL"、"RUE、"RU3"、"RU4"、"RLE"、"RL3"、"RL4"、"RE3"、"RE4"、"R34"、"ULE"、"UL3"、"UL4"、"UE3"、"UE4"、"U34"、"LE3"、"LE4"、"L34"、"E34"

"RULE"、"RUL3"、"RUL4"、"RUE3"、"RUE4"、"RU34"、"RLE3"、"RLE4"、"RL34"、"RE34"、"ULE3"、"ULE4"、"UL34"、"UE34"、"LE34"

"RULE3"、"RULE4"、"RUL34"、"RUE34"、"RLE34"、"ULE34"

"RULE34"

共 64 個。

標籤:
Basic Algorithm DP Dynamic Programming
出處:
FDCS 8th 進階教學 [管理者:
fdhs108rex (RexWu)
]


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