leetcode187. 重复的DNA序列
阅读原文时间:2023年07月09日阅读:1

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

编写一个函数来查找 DNA 分子中所有出现超过一次的 10 个字母长的序列(子串)。

 

示例:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/repeated-dna-sequences
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解答:

对于这道题,看到10个字符的字串,感觉就特别像是滑动窗口的题目,用10为窗口,然后向右滑动,又需要记录字串出现的次数,所以再用一个map记录保存个数,遍历完成以后,再遍历一遍map得到所有字串的出现次数就得到结果。

1 class Solution {
2 public List findRepeatedDnaSequences(String s) {
3 List res=new ArrayList<>();
4 if(s==null||s.length()<=10) 5 return res; 6 HashMap map=new HashMap<>();
7 for(int i=9;i entry:map.entrySet())
16 {
17 if(entry.getValue()>1)
18 res.add(entry.getKey());
19 }
20 return res;
21 }
22 }

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章