题解 | DNA序列
DNA序列
https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a
import sys # 读取输入的DNA字符串和目标子串长度 string = input() # 输入的DNA序列字符串 length = int(input()) # 需要寻找的子串长度 # 初始化存储所有可能子串和对应GC含量的列表 A_string = [] # 存储所有长度为length的子串 A_GC_per = [] # 存储对应子串的GC含量百分比 # 检查特殊情况:如果目标长度≥DNA字符串长度,直接输出整个字符串 if length >= len(string): print(string) else: # 遍历所有可能的起始位置 for i in range(len(string) - length + 1): # 修正:需要+1才能遍历所有可能的子串 # 获取当前子串 substring = string[i:i+length] # 计算GC含量百分比(G和C的数量除以子串长度) GC_per = (substring.count('G') + substring.count('C')) / len(substring) # 将子串和GC含量存入列表 A_string.append(substring) A_GC_per.append(GC_per) # 找出最大的GC含量值 max_GC_per = max(A_GC_per) # 遍历所有子串,找到第一个GC含量等于最大值的子串 for j in range(len(A_string)): if A_GC_per[j] == max_GC_per: print(A_string[j]) # 输出该子串 break # 找到第一个就退出循环