187. 重复的DNA序列
难度:Medium
掌握程度:Low
速度比较慢
var findRepeatedDnaSequences = function(s) {
const map = new Map();
const result = [];
let i = 0;
while(i+10<= s.length){
#这个部分是说我们截取长度为10的字符串放到dna里面
const dna = s.substring(i,i+10);
#如果这里面没有呢,我们就说它出现了一次
if(map.get(dna) === undefined){
map.set(dna,1);
#如果有呢我们就说它出现了2次,并且加到结果里面
}else if(map.get(dna) === 1){
map.set(dna,2);
result.push(dna);
}else{
map.set(dna,map.get(dna)+1);
}
i++;
}
return result
};
速度超级快
意思就是只要我这个集合里面有dna就add到结果里面
var findRepeatedDnaSequences = function(s) {
const set = new Set(), result = new Set();
let i = 0;
while(i+10<= s.length){
const dna = s.substring(i,i+10);
if(set.has(dna)){
result.add(dna);
}else{
set.add(dna);
}
i++;
}
return Array.from(result);
};