【Leetcode】【每日一题】【中等】187. 重复的DNA序列 官方题解待更新

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/repeated-dna-sequences/description/?envType=daily-question&envId=2023-11-05

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

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

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

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

示例 1:

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

示例 2:

输入:s = "AAAAAAAAAAAAA"
输出:["AAAAAAAAAA"]

思路

“见过的字符串集合seen”中是否有这个字符串(长度为10),有(即重复的)就添加到“答案集合ans”中,没有的就添加到“见过的字符串集合seen”中

代码

class Solution {
    public List findRepeatedDnaSequences(String s) {
        HashSet seen = new HashSet<>();
        HashSet ans = new HashSet<>();
        int len = s.length();
        for (int i = 0; i < len - 9; i++) {
            String tmp = s.substring(i, i + 10);
            if (seen.contains(tmp)) 
                ans.add(tmp);
            else
                seen.add(tmp);
        }
        return new ArrayList<>(ans);
    }
}

【Leetcode】【每日一题】【中等】187. 重复的DNA序列 官方题解待更新_第1张图片

【Leetcode】【每日一题】【中等】187. 重复的DNA序列 官方题解待更新_第2张图片 

力扣官方题解(待更新)

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/repeated-dna-sequences/solutions/1035568/zhong-fu-de-dnaxu-lie-by-leetcode-soluti-z8zn/?envType=daily-question&envId=2023-11-05

你可能感兴趣的:(Leetcode,算法)