力扣: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
相关推荐
AAD5558889917 分钟前
基于Faster RCNN的暴力行为检测模型优化与实现_1
python
lrh12280021 分钟前
详解决策树算法:分类任务核心原理、形成流程与剪枝优化
算法·决策树·机器学习
难得的我们24 分钟前
超越Python:下一步该学什么编程语言?
jvm·数据库·python
期末考复习中,蓝桥杯都没时间学了25 分钟前
力扣刷题15
算法·leetcode·职场和发展
工程师老罗28 分钟前
Turtle库的用法
python
2301_8174973330 分钟前
C++中的装饰器模式高级应用
开发语言·c++·算法
Sivan_Xin33 分钟前
拒绝 If-Else 屎山:利用适配器模式(Adapter)构建第三方登录的“防腐层”实战
linux·python·适配器模式
m0_5494166634 分钟前
C++编译期字符串处理
开发语言·c++·算法
m0_5811241934 分钟前
C++中的适配器模式实战
开发语言·c++·算法
A尘埃39 分钟前
零售连锁店生鲜品类销量预测——线性回归(Linear Regression)
算法·线性回归·零售