力扣:187. 重复的DNA序列(Python3)

题目:

DNA序列 由一系列核苷酸组成,缩写为 'A', 'C', 'G''T'.。

  • 例如,"ACGAATTCCG" 是一个 DNA序列

在研究 DNA 时,识别 DNA 中的重复序列非常有用。

给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次的 长度为 10 的序列(子字符串)。你可以按 任意顺序 返回答案。

来源:力扣(LeetCode)

链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

示例:

示例 1:

输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"

输出:["AAAAACCCCC","CCCCCAAAAA"]

示例 2:

输入:s = "AAAAAAAAAAAAA"

输出:["AAAAAAAAAA"]

解法:

使用滑动窗口记录每个子串出现的次数。

代码:

python 复制代码
class Solution:
    def findRepeatedDnaSequences(self, s: str) -> List[str]:
        dic = defaultdict(int)
        result = []
        if len(s) >= 10:
            for index in range(len(s) - 9):
                dic[s[index: index + 10]] += 1
            result = [k for k, v in dic.items() if v > 1]
        return result
相关推荐
hrrrrb3 分钟前
【算法设计与分析】随机化算法
人工智能·python·算法
进击的小头10 分钟前
一阶IIR低通滤波器:从原理到嵌入式实战
c语言·算法
D___H16 分钟前
Part10_编写自己的解释器
python
Zero_to_zero123418 分钟前
Claude code系列(一):claude安装、入门及基础操作指令
人工智能·python
Yeats_Liao19 分钟前
异步推理架构:CPU-NPU流水线设计与并发效率提升
python·深度学习·神经网络·架构·开源
2301_8112329823 分钟前
C++中的契约编程
开发语言·c++·算法
2401_8290040224 分钟前
C++中的访问者模式
开发语言·c++·算法
青槿吖31 分钟前
第二篇:JDBC进阶骚操作:防注入、事务回滚、连接池优化,一篇封神
java·开发语言·jvm·算法·自动化
sin_hielo31 分钟前
leetcode 1984
数据结构·算法·leetcode