Skip to content
On this page

187. 重复的DNA序列

原题链接:LeetCode 187. 重复的DNA序列

题目描述

DNA序列 由一系列核苷酸组成,缩写为 'A', 'C', 'G''T'.。

例如,`"ACGAATTCCG"` 是一个 **DNA序列** 。

在研究 DNA 时,识别 DNA 中的重复序列非常有用。

给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次的 长度为 10 的序列(子字符串)。你可以按 任意顺序 返回答案。

示例 1:

**输入:**s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" 输出:["AAAAACCCCC","CCCCCAAAAA"]

示例 2:

**输入:**s = "AAAAAAAAAAAAA" 输出:["AAAAAAAAAA"]

提示:

0 <= s.length <= 105
- `s[i]``==``'A'`、`'C'`、`'G'` or `'T'`

难度: Medium


题解代码

javascript
/**
 * @param {string} s
 * @return {string[]}
 */
 var findRepeatedDnaSequences = function(s) {
  const hash = {}
  const res = []
  for (let i = 0; i < s.length - 9; i++) { // slice前闭后开
      const str = s.slice(i, i + 10)
      if (hash[str] === undefined) {
          hash[str] = 1
      } else {
          if (hash[str] === 1) {
              res.push(str)
          }
          hash[str]++
      }
  }
  return res
};

技术文档集合