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 modified 6mo ago