leetcode -2-反復DNA配列

"ACGAATTCCG":例えば、A、C、G、およびTヌクレオチドと略記する一連の全DNA。DNAの研究では、研究におけるDNA反復配列の認識は非常に参考時々になります。

書き込み機能は、より長い(サブストリング)10の文字すべての出現におけるDNA分子の配列度も検索します。

 

例:

入力:S = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
出力:[ "AAAAACCCCC"、 "CCCCCAAAAA "]

出典:滞在ボタン(LeetCode)
リンクhttps://leetcode-cn.com/problems/repeated-dna-sequences
すべてのネットワークからの控除が著作権を保有。商業転載は、ソースを明記してください許可公式、非商用の転載をご連絡ください。

私は実際には、リストのクエリはO(LOGN)、およびセットはO(1)それがされ、より優れたパフォーマンスで設定し、そのリストを使用します。

public List<String> findRepeatedDnaSequences(String s) { int len = s.length(); List<String> res = new ArrayList<String>(); if (len <= 10) return res; Map<String, Integer> all = new HashMap<String, Integer>(); for (int i = 0; i <= len - 10; i++) { String str = s.substring(i, i+10); if (all.containsKey(str)) { all.put(str, all.get(str) + 1); } else { all.put(str,1); } } for (Map.Entry<String, Integer> stringIntegerEntry : all.entrySet()) { if (stringIntegerEntry.getValue() > 1) { res.add(stringIntegerEntry.getKey()); } } return res; }

おすすめ

転載: www.cnblogs.com/foolgry/p/11795233.html