输入描述:
输入一个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)