Leetcode No.187 重复的DNA序列(滑动窗口)

Posted AI算法攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode No.187 重复的DNA序列(滑动窗口)相关的知识,希望对你有一定的参考价值。

一、题目描述

所有 DNA 都由一系列缩写为 \'A\',\'C\',\'G\' 和 \'T\' 的核苷酸组成,例如:"ACGAATTCCG"。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。

编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。

示例 1:
输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
输出:["AAAAACCCCC","CCCCCAAAAA"]

示例 2:
输入:s = "AAAAAAAAAAAAA"
输出:["AAAAAAAAAA"]

提示:
0 <= s.length <= 105
s[i] 为 \'A\'、\'C\'、\'G\' 或 \'T\'

二、解题思路

线性时间窗口切片 + HashSet+HashMap

沿长度为 N 的字符串移动长度为 L 的滑动窗口。
检查滑动窗口中的序列是否在 HashMap中。
如果是,则找到了重复的序列,将序列假如到HashSet中。
否则,将序列添加到 HashMap中。

三、代码

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Li

以上是关于Leetcode No.187 重复的DNA序列(滑动窗口)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode187. 重复的DNA序列

LeetCode:187. 重复的DNA序列

《LeetCode之每日一题》:172.重复的DNA序列

[LeetCode] 187. Repeated DNA Sequences 求重复的DNA序列

LeetCode187 重复的DNA序列

Leetcode——重复的DNA序列