187繰り返しDNA配列
187の反復DNA配列
题目描述
"ACGAATTCCG":すべてのDNAは、例えば、A、C、G、およびTと略記する一連のヌクレオチドから構成されています。DNAを勉強するとき、DNAの中に繰り返し配列を同定すると便利な場合があります。
DNA分子中に複数回発生するすべての10-レター長いシーケンス(ストリング)を見つけるための機能を記述します。
LeetCode 187は、DNA配列を繰り返し中等
例:
入力:
S = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
出力: [ "AAAAACCCCC"、 "CCCCCAAAAA"]
Java実装
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
class Solution {
public List<String> findRepeatedDnaSequences(String s) {
Set<String> set = new HashSet<>();
Set<String> repeat = new HashSet<>();
for (int i = 0; i + 9 < s.length(); i++) {
String str = s.substring(i, i + 10);
if (!set.add(str)) {
repeat.add(str);
}
}
return new ArrayList<>(repeat);
}
}
参考資料