题解 | 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 # 找到第一个就退出循环

小天才公司福利 1258人发布