生活随笔
收集整理的這篇文章主要介紹了
百练OJ:2678:基因检测
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:
描述
用一個字符串表示一段基因,例如:“CTATGGGTTT”。兩段基因的相似度定義為它們所包含的最大公共子串的長度。例如:“CCTTGG”和“TGGGC”的最大公共子串為“TGG”,它的長度為3,則我們稱“CCTTGG”和“TGGGC”的相似度為3?,F給定兩段基因,要求計算它們的相似度。
輸入
輸入第一行包含一個正整數N(0<N<100),表示測試數據的數目;接下來N行,每行包含兩個字符串(每個字符串長度小于等于20),用一個空格隔開,分別表示給定的兩段基因。
輸出
對于每組測試數據輸出一行,該行包含一個整數,表示給定基因段的相似度。
樣例輸入
2
CCCCC TTTTTGGGGGCC
ACTGGG DDD
樣例輸出
2
0
解題代碼:def getMax(str1,str2,minlen):t = 0a = minlenwhile a > -1:for i in range(minlen-a):substr2 = str2[i:i+a+1]# print(substr2)if substr2 in str1:t = a+1breakif t > 0:breaka -= 1return tn = int(input())
for i in range(n):x = input()str1 = x.split()[0]str2 = x.split()[1]if len(str1) > len(str2):r = getMax(str1, str2, len(str2))else:r = getMax(str2, str1, len(str1))print(r)
總結
以上是生活随笔為你收集整理的百练OJ:2678:基因检测的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。