所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。
编写一个函数来查找目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。
示例:
输入:s = “AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT”
输出:[“AAAAACCCCC”, “CCCCCAAAAA”]
解析:
本题题目写的不是很清楚明白
本题的要求:
在目标字符串中找出所有长度为10的重复字串
用map即可简单的解决问题
class Solution {
public:
vector<string> findRepeatedDnaSequences(string s) {
unordered_map<string,int> m;
vector<string> res;
if(s.size()<10) return res;
for(int i=0;i<s.size()-9;++i){
string tmp = s.substr(i,10);
if (m[tmp] == 1) res.push_back(tmp);
m[tmp] ++;
}
return res;
}
};