两种方式:
一种复杂度为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