Gist / February 9, 2024 / 1 min read / By Mahi Garg

Repeated DNA Sequences - LeetCode : Swift

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)
    }
}