简单
所有 DNA 都由一系列缩写为 ‘A’,’C’,’G’ 和 ‘T’ 的核苷酸组成,例如:”ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。
- 编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。
思路:
窗口长度为10,然后从s头部开始一直移动到末尾,通过map判断是否是重复出现,
let s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
var findRepeatedDnaSequences = function (s) {
let L = 0, R = 10, map = new Map, res = []
while (R <= s.length) {
let str = s.slice(L++, R++)
if (map.get(str) === 1) {
res.push(str);
}
map.set(str, map.has(str) ? map.get(str) + 1 : 1);
}
return res
};
console.log(findRepeatedDnaSequences(s));