题解 | #DNA序列#
DNA序列
https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a
# 定义一个函数来找到具有最高GC比例的子串 def find_highest_gc_ratio_substring(dna_sequence, n): # 初始化最大的GC比例为-1,这样任何有效的比例都会更大 max_ratio = -1 # 初始化最高GC比例对应的子串为空字符串 substring = "" # 遍历序列,检查每个长度为n的子串 for i in range(len(dna_sequence) - n + 1): # 获取当前位置开始的长度为n的子串 current_substring = dna_sequence[i : i + n] # 计算当前子串中G和C的总数 gc_count = current_substring.count("G") + current_substring.count("C") # 计算当前子串的GC比例 gc_ratio = gc_count / n # 如果当前子串的GC比例高于之前记录的最高比例,则更新最高比例和对应的子串 if gc_ratio > max_ratio: max_ratio = gc_ratio substring = current_substring # 返回具有最高GC比例的子串 return substring # 主程序开始 # 从用户那里接收DNA序列输入 dna_sequence = input() # 从用户那里接收子串长度的输入,并转换为整数 n = int(input()) # 调用函数,并打印出具有最高GC比例的子串 print(find_highest_gc_ratio_substring(dna_sequence, n))