### LeetCode Solution - Problem Repeated DNA Sequences

• 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'.
Solution:

Java:

``````class Solution {
public List<String> findRepeatedDnaSequences(String s) {
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i <= s.length() - 10; i++) {
String substring = s.substring(i, i+10);
map.put(substring, map.getOrDefault(substring, 0) + 1);
}

List<String> list = new ArrayList<>();
for (Map.Entry<String, Integer> item : map.entrySet()) {
if (item.getValue() > 1) {
}
}
return list;
}
}
``````
Python:

``````class Solution:
def findRepeatedDnaSequences(self, s: str) -> List[str]:
n = len(s)
cnt = defaultdict(int)
for i in range(n - 9):
cnt[s[i:i+10]] += 1

ans = []
for key, value in cnt.items():
if value >= 2: # Found a string that occurs more than once
ans.append(key)
return ans
``````