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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务