187. Repeated DNA Sequences

Medium

The DNA sequence is composed of a series of nucleotides abbreviated as 'A', 'C', 'G', and 'T'.

  • For example, "ACGAATTCCG" is a DNA sequence.

When studying DNA, it is useful to identify repeated sequences within the DNA.

Given a string s that represents a DNA sequence, return all the 10-letter-long sequences (substrings) that occur more than once in a DNA molecule. You may return the answer in any order.

Example 1:

Input: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
Output:
 ["AAAAACCCCC","CCCCCAAAAA"]

Example 2:

Input: s = "AAAAAAAAAAAAA"
Output:
 ["AAAAAAAAAA"]

Constraints:

  • 1 <= s.length <= 105

  • s[i] is either 'A', 'C', 'G', or 'T'.

解題

Runtime: 16 ms, faster than 88.71%

Memory Usage: 7.8 MB, less than 84.68%

func findRepeatedDnaSequences(s string) []string {
    m := make(map[string]bool)
    ans := make(map[string]bool)

    for i:=0; i<=len(s)-10; i++ {
        if m[s[i:i+10]] {
            ans[s[i:i+10]] = true
        } else {
            m[s[i:i+10]] = true
        }
    }

    res := make([]string, 0)
    for k := range ans {
        res = append(res, k)
    }

    return res
}

Last updated