首页 > 试题广场 >

DNA序列

[编程题]DNA序列
  • 热度指数:11341 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
牛牛又从生物科研工作者那里获得一个任务,这次牛牛需要帮助科研工作者从DNA序列s中找出最短没有出现在DNA序列s中的DNA片段的长度。
例如:s = AGGTCTA
序列中包含了所有长度为1的('A','C','G','T')片段,但是长度为2的没有全部包含,例如序列中不包含"AA",所以输出2。

输入描述:
输入包括一个字符串s,字符串长度length(1 ≤ length ≤ 2000),其中只包含'A','C','G','T'这四种字符。


输出描述:
输出一个正整数,即最短没有出现在DNA序列s中的DNA片段的长度。
示例1

输入

AGGTCTA

输出

2
头像 牛客题解官
发表于 2020-06-05 17:48:20
精华题解 DNA序列 题目难度:中等 知识点:数学逻辑、宽度优先遍历 方法一 采用宽度优先遍历,得到长度为i的子串的所有排列,比较字符串中是否存在全部子串,若全部存在,则继续下一个长度的子串的遍历,否则,i即为字符串中没有包含所有该长度的子串,输出i,循环结束。 import java.util.Scanne 展开全文
头像 贪吃的迪恩顶呱呱
发表于 2024-05-11 15:39:55
使用集合存储当前的种类,同时举例子可知长度为 i 的一共有 4^i 种 #include <iostream> #include <cmath> #include <unordered_set> using namespace std; int main() { 展开全文