AlgoMooc
← 返回题库

P3283. DNA序列

中等通过率 81% · 提交 150 · 通过 122
滑动窗口字符串模拟固定滑窗

小慕正在处理一个生物信息项目,其中涉及由 A/C/G 和 T 四种字母组成的序列。这个序列的 定义为字母 G 和 C 出现的总次数除以序列的总长度。在项目中,GC-Ratio 的高低对判断基因的起始位置至关重要。 现在,小慕有一个很长的序列,以及一个限定的长度 N。他需要从左到右扫描这个序列,找出 GC-Ratio 最高且长度为 N 的第一个子串。 序列由 ACGT 四种字母构成,例如子串可以是 ACG、CG、CGT 等,但不会出现 AGT 或 CT 等不符合连续位置要求的组合。

提示:带虚线的词点一下有通俗解释。

输入描述

输入一个string型基因序列,和int型子串的长度

输出描述

找出GC比例最高的子串,如果有多个则输出第一个的子串

示例

示例 1

输入

ACGT
2

输出

CG

说明:ACGT长度为2的子串有AC, CG,GT一共3个,其中AC和GT这2个的GC-Ratio都为0.5,CG为1,故输出CG

示例 2

输入

AACTGTGCACGACCTGA
5

输出

GCACG

说明:虽然CGACC的GC-Ratio也是最高,但它是从左往右找到的GC-Ratio最高的第2个子串,所以只能输出GCACG。

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。