187. Repeated DNA Sequences
Description
Difficulty: Medium
Related Topics: Hash Table, String, Bit Manipulation, Sliding Window, Rolling Hash, Hash Function
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:
1 | Input: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" |
Example 2:
1 | Input: s = "AAAAAAAAAAAAA" |
Constraints:
- 1 <= s.length <= 105
s[i]
is either'A'
,'C'
,'G'
, or'T'
.
Hints/Notes
- Rabin karb algorithm
- Make the string a int number(base number 4)
- Use a set to represent the results first, then transform it to vector to return
1 | class Solution { |
Solution
Language: C++
1 | class Solution { |