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"]
思路: 对序列从头开始遍历,把经过的长度为10的字符放进哈希表,然后对哈希表中值维护(某序列出现次数)
/**
* @param {string} s
* @return {string[]}
*/
var findRepeatedDnaSequences = function(s) {
let map={};
for(let i=0;i<s.length-9;i++){
if(map[s.substr(i,10)]) map[s.substr(i,10)]+=1;
else{
map[s.substr(i,10)]=1
}
}
let res=[];
for(let item in map){
if(map[item]>1){res.push(item)}
}
return res
};