187.重复的dna序列(JS)

598 阅读1分钟

重复的DNA序列

Category Difficulty Likes Dislikes
algorithms Medium (43.92%) 35 -
Tags
Companies

linkedin

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

编写一个函数来查找 DNA 分子中所有出现超多一次的10个字母长的序列(子串)。

示例:

输入: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"

输出: ["AAAAACCCCC", "CCCCCAAAAA"]
/*
 * @lc app=leetcode.cn id=187 lang=javascript
 *
 * [187] 重复的DNA序列
 */
/**
 * @param {string} s
 * @return {string[]}
 */
var findRepeatedDnaSequences = function(s) {
    
};


1

/*
 * @lc app=leetcode.cn id=187 lang=javascript
 *
 * [187] 重复的DNA序列
 */
/**
 * @param {string} s
 * @return {string[]}
 */
var findRepeatedDnaSequences = function (s) {
	let map = new Map()
	for (let i = 0; i < s.length - 9; i++) {
		let key = s.slice(i, i + 10)
		if (map.has(key))
			map.set(key, map.get(key) + 1)
		else map.set(key, 1)
	}
	let ret = []
	map.forEach((val, key) => {
		if (val > 1) ret.push(key)
	})
	return ret
};