-
题目描述
题目链接:leetcode-cn.com/problems/re…
-
思路分析
使用一个哈希表来记录每个DNA序列(即长度为十的子串)的出现次数,若某一个子串出现了一次以上就记入答案中。所以只需要循环一次,每次取当前下标为首字符,长度为十的子串放入哈希表中,若该子串对应的值为2就说明其符合条件可以放入答案中,同时这样做也可以避免重复放入相同的子串。
-
代码
var findRepeatedDnaSequences = function (s) {
if (s.length <= 10) {
return [];
}
let mmap = new Map();
let res = [];
for (let i = 0; i <= s.length - 10; i++) {
let ss = s.slice(i, 10 + i);
mmap.set(ss, (mmap.get(ss) || 0) + 1);
if (mmap.get(ss) == 2) {
res.push(ss);
}
}
return res;
};