[LeetCode] 187. Repeated DNA Sequences
Posted aaronliu1991
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 187. Repeated DNA Sequences相关的知识,希望对你有一定的参考价值。
重复的DNA序列。给的input是一个DNA序列,请输出所有出现多次的DNA子序列。这题有位运算的做法但是个人觉得用hashset的做法更方便。
思路是用两个hashset,一个存子序列是否出现过(seen),另一个存最后的输出(res)。当某个子序列在seen中已经有了,就存入res;最后输出res里面所有的子序列。
时间O(n) - n是input字符串长度
空间O(n) - 用了两个hashset
1 /** 2 * @param {string} s 3 * @return {string[]} 4 */ 5 var findRepeatedDnaSequences = function(s) { 6 let seen = new Set(); 7 let res = new Set(); 8 for (let i = 0; i < s.length - 9; i++) { 9 const str = s.substring(i, i + 10); 10 if (seen.has(str)) { 11 res.add(str); 12 } else { 13 seen.add(str); 14 } 15 } 16 return Array.from(res); 17 };
以上是关于[LeetCode] 187. Repeated DNA Sequences的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode 187 Repeated DNA Sequences
LeetCode 187. Repeated DNA Sequences 20170706 第三十次作业
[LeetCode] 187. Repeated DNA Sequences 求重复的DNA序列
[LeetCode] 187. Repeated DNA Sequences