내 코드 (82ms, 59.40mb)
/**
* @param {string} s
* @return {string[]}
*/
var findRepeatedDnaSequences = function(s) {
const map = new Map();
if (s.length < 10) return [];
let answer = [];
let left = 0;
let right = 10;
while (right !== s.length+1) {
const cur = s.substring(left, right);
if (!map.has(cur)) map.set(cur, 1);
else map.set(cur, map.get(cur) + 1);
left++; right++;
}
map.forEach((key, value) => {
if (key >= 2) answer.push(value);
})
return answer;
};
천재의 코드 (출처)
var findRepeatedDnaSequences = function(s) {
let curr = s.slice(0, 10);
const seen = new Set([curr]);
const res = new Set();
for(let i = 10; i < s.length; i++) {
curr = curr.slice(1) + s[i];
if(seen.has(curr)) res.add(curr);
seen.add(curr);
}
return [...res];
};
'개발 이론 > 풀이' 카테고리의 다른 글
[Grind75] 20. Valid Parentheses (0) | 2024.04.16 |
---|