一、题目描述
一个 DNA 序列由 A/C/G/T 四个字母的排列组合组成。 G 和 C 的比例(定义为 GC-Ratio )是序列中 G 和 C 两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的 GC-Ratio 可能是基因的起始点。
给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。
DNA序列为 ACGT 的子串有: ACG , CG , CGT 等等,但是没有 AGT , CT 等等。
数据范围:字符串长度满足 1≤n≤1000 ,输入的字符串只包含 A/C/G/T 字母。
二、输入描述
输入一个string型基因序列,和int型子串的长度。
三、输出描述
找出GC比例最高的子串,如果有多个则输出第一个的子串。
四、解题思路
- 首先读取输入的基因序列和子串长度;
- 初始化变量 len 和 result,分别用于记录最高的GC比例和对应的子串;
- 使用循环遍历基因序列,每次取长度为 N 的子串;
- 对当前子串进行处理,使用正则表达式将非 GC 字母替换为空字符串,得到仅包含 GC 字母的子串 son;
- 计算当前子串的GC比例 cur,即 son 的长度除以子串长度;
- 如果当前GC比例 cur 大于之前记录的最
博客主要介绍了如何在给定的DNA序列中,根据限定的子串长度N,找出GC-Ratio(G和C的比例)最高的第一个子串。通过读取输入的基因序列和子串长度,利用正则表达式处理并计算每个子串的GC比例,最终输出最高比例的子串。示例中,对于DNA序列ACGT和子串长度2,输出了GC-Ratio为1的子串CG。
订阅专栏 解锁全文
7万+

被折叠的 条评论
为什么被折叠?



