藍橋杯 最長字串行

2021-10-21 13:54:04 字數 1077 閱讀 8168

問題描述

設x(i), y(i), z(i)表示單個字元,則x=,y=,z=,我們稱其為字串行,其中m,n和k分別是字串行x,y,z的長度,括號()中的數字被稱作字串行的下標。

如果存在乙個嚴格遞增而且長度大於0的下標序列,使得對所有的j=1,2,……k,有x(ij)=z(j),那麼我們稱z是x的字元子串行。而且,如果z既是x的字元子串行又是y的字元子串行,那麼我們稱z為x和y的公共字串行。

在我們今天的問題中,我們希望計算兩個給定字串行x和y的最大長度的公共字串行,這裡我們只要求輸出這個最大長度公共子串行對應的長度值。

舉例來說,字串行x=abcd,y=acde,那麼它們的最大長度為3,相應的公共字串行為acd。

輸入格式

輸入一行,用空格隔開的兩個字串

輸出格式

輸出這兩個字串行對應的最大長度公共字串行的長度值

樣例輸入

aabb aabb

樣例輸出

2資料規模和約定

輸入字串長度最長為100,區分大小寫。

s1,s2 =

input()

.split(

)m =

len(s1)

n =len

(s2)

res =[[

0for i in

range

(n+1)]

for j in

range

(m+1)]

for i in

range(1

,m+1):

for j in

range(1

,n+1):

if s1[i-1]

== s2[j-1]

: res[i]

[j]= res[i-1]

[j-1]+

1else

: res[i]

[j]=

max(res[i-1]

[j],res[i]

[j-1])

print

(res[m]

[n])

藍橋杯 ADV 207 最長字串行

演算法提高 最長字串行 時間限制 1.0s 記憶體限制 256.0mb 最長字串行 問題描述 設x i y i z i 表示單個字元,則x y z 我們稱其為字串行,其中m,n和k分別是字串行x,y,z的長度,括號 中的數字被稱作字串行的下標。如果存在乙個嚴格遞增而且長度大於0的下標序列,使得對所有...

最長字串行

問題描述 設x i y i z i 表示單個字元,則x y z 我們稱其為字串行,其中m,n和k分別是字串行x,y,z的長度,括號 中的數字被稱作字串行的下標。如果存在乙個嚴格遞增而且長度大於0的下標序列,使得對所有的j 1,2,k,有x ij z j 那麼我們稱z是x的字元子串行。而且,如果z既是...

藍橋杯 字串統計

題目 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。輸出格式 一行,題目要求的字串。輸入樣例1 4bbaabb...