码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] 187. Repeated DNA Sequences

时间:2019-10-17 09:15:23      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:color   hash   ++   nbsp   ase   leetcode   var   另一个   序列   

重复的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

标签:color   hash   ++   nbsp   ase   leetcode   var   另一个   序列   

原文地址:https://www.cnblogs.com/aaronliu1991/p/11689679.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!