力扣: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
相关推荐
Vanranrr几秒前
C++临时对象与悬空指针:一个导致资源加载失败的隐藏陷阱
服务器·c++·算法
n***26561 分钟前
Python连接SQL SEVER数据库全流程
数据库·python·sql
β添砖java2 分钟前
python第一阶段第六章python数据容器
开发语言·python
o***369315 分钟前
python爬虫——爬取全年天气数据并做可视化分析
开发语言·爬虫·python
q***311436 分钟前
【JAVA进阶篇教学】第十二篇:Java中ReentrantReadWriteLock锁讲解
java·数据库·python
时尚IT男1 小时前
Python 魔术方法详解:掌握面向对象编程的精髓
开发语言·python
找了一圈尾巴1 小时前
Python 学习-深入理解 Python 进程、线程与协程(下)
开发语言·python·学习
可触的未来,发芽的智生1 小时前
微论-自成长系统引发的NLP新生
javascript·人工智能·python·程序人生·自然语言处理
adam_life1 小时前
【P8306 【模板】字典树】
数据结构·算法·字典树·trie·哈希表··结构体
Wenhao.2 小时前
LeetCode Hot100 腐烂的橘子
算法·leetcode·职场和发展