【LeetCode] 187反復DNA配列

反復DNA配列。DNA配列への入力は、全てのDNA配列の出力が複数回登場しました。この問題は、ビット・コンピューティングの実践を持っていますが、個人的に使用HashSetの練習がより便利と感じています。

アイデアは、格納されたシーケンスが発生したかどうか2つのHashSetの、(見られる)を使用することであり、もう一つは最後の出力(RES)を含みます。子が順番に見られた場合は、RESに格納され、すべてのサブシーケンスの最終出力内部RES。

時間O(N) - Nを入力文字列の長さ

スペースO(N) - 2つのHashSetのと

1  / * *
 2  * @param {文字列} S
 3  * @return {ストリング[]}
 4   * / 
5  のvar findRepeatedDnaSequences = 機能(S){
 6      =見LET 新しいセット()。
図7は、      RES =ましょう新しいセット();
8      (i = 0せ; iはs.length < - 9; iは++ ){
 9          CONST STR = s.substring(iは、iが10 + )。
10          であれば(seen.has(STR)){
 11              res.add(STR)。
12          } {
 13             seen.add(STR)。
14          }
 15      }
 16      リターンArray.from(RES)。
17 }。

 

おすすめ

転載: www.cnblogs.com/aaronliu1991/p/11689679.html