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
};

技术文档集合