ID | Title | Difficulty | |
---|---|---|---|
Loading... |
187. Repeated DNA Sequences
Medium
LeetCode
Hash Table, String, Bit Manipulation, Sliding Window, Rolling Hash, Hash Function
Problem
All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: “ACGAATTCCG”. When studying DNA, it is sometimes useful to identify repeated sequences within the DNA.
Write a function to find all the 10-letter-long sequences (substrings) that occur more than once in a DNA molecule.
Example:
Input: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
Output: ["AAAAACCCCC", "CCCCCAAAAA"]
Code
class Solution {
public List<String> findRepeatedDnaSequences(String s) {
HashSet<String> seen = new HashSet<>();
HashSet<String> repeated = new HashSet<>();
for(int i = 0; i < s.length() - 9; i++){
String temp = s.substring(i, i + 10);
if(!seen.add(temp)){
repeated.add(temp);
}
}
return new ArrayList<>(repeated);
}
}
按 <- 键看上一题!
186. Reverse Words in a String II
按 -> 键看下一题!
188. Best Time to Buy and Sell Stock IV