所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。
编写一个函数来查找目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。
示例:
输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
输出:["AAAAACCCCC", "CCCCCAAAAA"]
来源:力扣(LeetCode)
代码:
class Solution {
public:
vector<string> findRepeatedDnaSequences(string s) {
int i;
map<string,int> m;
vector<string> v;
if(s.length()<10){
return v;
}
for(i=0;i<s.length()-9;i++){
string str=s.substr(i, 10);
m[str]++;
}
map<string,int>::iterator it;
for(it=m.begin();it!=m.end();it++){
if(it->second>1){
v.push_back(it->first);
}
}
return v;
}
};