目录

题目

示例 1:

示例 2:

思路:

我的其他博客

题目

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

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

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

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

示例 1:

输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"

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

示例 2:

输入:s = "AAAAAAAAAAAAA"

输出:["AAAAAAAAAA"]

思路:

使用了两个集合,一个用于存储当前循环中的DNA子序列,另一个用于存储重复出现的子序列。通过遍历输入字符串,逐个检查子序列是否在集合中出现,最终找出所有重复的DNA子序列。

class Solution {

public List findRepeatedDnaSequences(String s) {

int len=s.length();

Set res = new HashSet<>();

Set set = new HashSet<>();

for(int i=0;i<=len-10;i++){

String key=s.substring(i,i+10);

if(set.contains(key)){

res.add(key);

}else{

set.add(key);

}

}

return new ArrayList<>(res);

}

}

我的其他博客

简单介绍一些其他的树-CSDN博客

认识二叉树(详细介绍)-CSDN博客

正则表达式详细讲解-CSDN博客

低代码开发:创新之道还是软件开发的捷径?-CSDN博客

HTTP与HTTTPS的区别-CSDN博客

什么情况下会产生StackOverflowError(栈溢出)和OutOfMemoryError(堆溢出)怎么排查-CSDN博客

在多线程中sleep()和wait()的区别(详细)-CSDN博客

谈谈我对HashMap扩容机制的理解及底层实现-CSDN博客

堆排序详细讲解(一文足矣JAVA)-CSDN博客

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: