简单

所有 DNA 都由一系列缩写为 ‘A’,’C’,’G’ 和 ‘T’ 的核苷酸组成,例如:”ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。

  • 编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。

image.png

思路:

  1. 窗口长度为10,然后从s头部开始一直移动到末尾,通过map判断是否是重复出现,

    1. let s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
    2. var findRepeatedDnaSequences = function (s) {
    3. let L = 0, R = 10, map = new Map, res = []
    4. while (R <= s.length) {
    5. let str = s.slice(L++, R++)
    6. if (map.get(str) === 1) {
    7. res.push(str);
    8. }
    9. map.set(str, map.has(str) ? map.get(str) + 1 : 1);
    10. }
    11. return res
    12. };
    13. console.log(findRepeatedDnaSequences(s));