Repeated DNA Sequences - LeetCode
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 <= 10^5
s[i]
is either'A'
,'C'
,'G'
, or'T'
.
Solution
class Solution {
func findRepeatedDnaSequences(_ s: String) -> [String] {
if s.count < 10 { return [] }
var myStr: String = String(s.prefix(10))
let s = Array(s)
var set: Set<String> = [myStr]
var ans: Set<String> = []
for i in 10..<s.count {
myStr = String(myStr.dropFirst())
myStr.append(s[i])
if set.contains(myStr) {
ans.insert(myStr)
} else {
set.insert(myStr)
}
}
return Array(ans)
}
}