两种方式:
一种复杂度为o(n^2):
while True:
try:
a, b = input(), int(input())
maxStr, maxCnt = a[:b], a[:b].count("C") + a[:b].count("G")
for i in range(0, len(a) - b):
if a[i:i + b].count("C") + a[i:i + b].count("G") > maxCnt:
maxCnt = a[i:i + b].count("C") + a[i:i + b].count("G")
maxStr = a[i:i + b]
print(maxStr)
except:
break
另一种:
while True:
try:
a,b,list1=list(input()),int(input()),[]
c=len(a)-b+1
for i in range(c):
res=a[i:i+b]
Count_G=res.count('G')
Count_C=res.count('C')
GC_ratio=(Count_G+Count_C)/b
list1.append(GC_ratio)
d=list1.index(max(list1))
print(''.join(a[d:d+b]))
except:
break
京公网安备 11010502036488号