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'
/**
* @param {string} s
* @return {string[]}
*/
var findRepeatedDnaSequences = function(s) {
if(s.length < 11) return [];
let n = s.length,map = new Map(),left = 0,right = 10,ret = [];
while(right <= n){
let cur = s.substring(left,right);
map.set(cur,map.has(cur) ? map.get(cur) + 1:1);
left++;
right++;
}
for(let [k,v] of map){
if(v > 1) ret.push(k);
}
return ret;
};