长大后想做什么?做回小孩!

0%

LeetCode——重复的DNA序列

NO.187 重复的DNA序列 中等

YfDxte.png

思路一:HashTable 一次遍历,枚举所有字符开头的子串,用一个 HashSet 存储遇见的子串,子串发生重复时保存进结果集(结果集也需要去重)。

1
2
3
4
5
6
7
8
9
10
11
12
13
public List<String> findRepeatedDnaSequences(String s) {
Set<String> res = new HashSet<>();
HashSet<String> set = new HashSet<>();
for (int i = 0; i <= s.length() - 10; i++) {
String temp = s.substring(i, i + 10);
if (set.contains(temp)) {
res.add(temp);
} else {
set.add(temp);
}
}
return new ArrayList<>(res);
}

空间复杂度:O(n)

时间复杂度:O(n)


本人菜鸟,有错误请告知,感激不尽!

更多题解和源码:github