爱奇艺校招----DNA序列(python)
2019-03-11 15:30
375 查看
一、题目
题目描述
牛牛又从生物科研工作者那里获得一个任务,这次牛牛需要帮助科研工作者从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
二、分析及代码
题意:给一串由ACGT组成的字符串,求由ACGT任意组合出现在给定字符串的最短的字符串的长度 。
分析:先求解长度为i的所有组成的字符串,在检查每个字符串是否出现。python实现很简单,代码如下:
[code]def find_sub_dna(n): t = ['A', 'C', 'G', 'T'] ele = t if n == 1: return t else: new = t for i in range(n-1): t = new for j in range(len(t)): for k in range(4): new.append(str(t[j] + ele[k])) return new s = input() ori = s s = list(s) l = len(s) flag = 1 for i in range(1, l+1): sub_dna = find_sub_dna(i) for x in 4000 sub_dna: if x not in ori: print(i) flag = 0 break if flag == 0: break
相关文章推荐
- 算法竞赛——给定ATCG的DNA环状序列,求解最小表示字典序(附python代码及时间复杂度解析)
- python练习题1 计算多个DNA序列中,GC比最高的序列
- 利用Python【Orange】结合DNA序列进行人种预测
- 用python脚本将DNA序列的.fa文件格式转换为.npy
- leetcode-重复的DNA序列(python)
- 利用Python【Orange】结合DNA序列进行人种预测
- LeetCode-Python-187. 重复的DNA序列
- python练习题2 从两个DNA序列中找到突变位点的数量
- 利用Python【Orange】结合DNA序列进行人种预测
- Python实现随机DNA序列,生成文件并匹配相似度文件
- 利用python实现二分法和斐波那契序列
- [Python] 内置序列函数之 filter, map, reduce, zip
- 【python笔记】--序列
- python 分片、截断序列
- Python基础——序列
- Python 去除序列s中的重复元素
- python--序列的基本概念和操作(序列:列表、元组、字符串)
- 干货 | python进阶系列(三)--序列
- DNA序列(JAVA语言)
- python 序列处理函数