输入描述:
输入一个string型基因序列,和int型子串的长度
输出描述:
找出GC比例最高的子串,如果有多个则输出第一个的子串
示例1
输入:
ACGT
2
输出:
CG
说明:
ACGT长度为2的子串有AC,CG,GT3个,其中AC和GT2个的GC-Ratio都为0.5,CG为1,故输出CG
示例2
输入:
AACTGTGCACGACCTGA
5
输出:
GCACG
说明:
虽然CGACC的GC-Ratio也是最高,但它是从左往右找到的GC-Ratio最高的第1个子串,所以只能输出GCACG。
解题思路:
- 我们想要得到
GC-ratio最高的子串,根据GC-ratio的定义。则可以理解为得到的子串中,G和C的数量最多。 - 双重循环遍历字符串,找出符合给定长度的子串,比较各个符合条件的子串,并获取
G和C数量最多的子串,将其添加到列表对象中。当然也可以使用字符串保存它
str1 = input()
num = int(input())
num_cg = 0
length = len(str1)
lst = [""]
# str2 = "" # 使用字符串保存最后的结果
for i in range(length):
for j in range(i +1, length+1):
if len(str1[i:j]) == num:
cg_ratio = str1[i:j].count("C") + str1[i:j].count("G")
if cg_ratio > num_cg:
num_cg = cg_ratio
lst[0] = str1[i:j]
# str2 = str1[i:j]
print(lst[0])
# print(str2)
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~










