例えばA、C、G、およびTヌクレオチドと略記する一連の全DNA、 "ACGAATTCCG"。DNAの研究では、研究におけるDNA反復配列の認識は、時には非常に参考になります。
書き込みを見つける機能は、10文字(サブストリング)のDNA分子の全ての長いシーケンスの複数にわたって生じます。
例:
入力:S = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
输出:[ "AAAAACCCCC"、 "CCCCCAAAAA"]
出典:ボタン(LeetCode)滞在
:リンクhttps://leetcode-cn.com/problems/repeated-dna-sequences
すべてのネットワークからの控除が著作権を保有します。商業転載は許可公式、非商用の転載は、ソースを明記してくださいお問い合わせください。
アルゴリズム:暴力列挙
アルゴリズムII:二次元のハッシュテーブルの最適化サイクル、値はあなたが見つけることができ、アップ保たれています
class Solution {
public:
vector<string> findRepeatedDnaSequences(string s) {
unordered_map<string,int> hash;
vector<string> res;
for(int i=0;i+10<=s.size();++i){
string now = s.substr(i,10);
if(hash[now]==1)res.push_back(now);
hash[now]++;
}
return res;
}
};