187
DNA序列 由一系列核苷酸组成,缩写为 'A'
, 'C'
, 'G'
和 'T'
.。
- 例如,
"ACGAATTCCG"
是一个 DNA序列 。
在研究 DNA 时,识别 DNA 中的重复序列非常有用。
给定一个表示 DNA序列 的字符串 s
,返回所有在 DNA 分子中出现不止一次的 长度为 10
的序列(子字符串)。你可以按 任意顺序 返回答案。
示例 1:
输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" 输出:["AAAAACCCCC","CCCCCAAAAA"]
思路:直接暴力遍历
第一遍
class Solution(object): def findRepeatedDnaSequences(self, s): """ :type s: str :rtype: List[str] """ zixulies = list() length = len(s) for i in range(length-10): zixulies.append(s[i:i+10]) ans = list(set(zixulies)) re = list() for zixulie in ans: if zixulies.count(zixulie)>1: re.append(zixulie) return re
对字符串切片的长度、循环的起止 把握有误 WA
第二遍
class Solution(object): def findRepeatedDnaSequences(self, s): """ :type s: str :rtype: List[str] """ zixulies = list() length = len(s) for i in range(length-9): zixulies.append(s[i:i+10]) ans = list(set(zixulies)) re = list() for zixulie in ans: if zixulies.count(zixulie)>1: re.append(zixulie) return re
31个测试用例过了30个 超时了
第三遍 把第二次的代码给WXYY让他优化时间复杂度
class Solution(object): def findRepeatedDnaSequences(self, s): """ :type s: str :rtype: List[str] """ dna_sequences = set() seen = set() for i in range(len(s) - 9): sequence = s[i:i+10] if sequence in seen: dna_sequences.add(sequence) seen.add(sequence) return list(dna_sequences)
Work Hard
But do not forget to enjoy life😀
本文来自博客园,作者:YuhangLiuCE,转载请注明原文链接:https://www.cnblogs.com/YuhangLiuCE/p/17810570.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)