题目:
All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: “ACGAATTCCG”. When studying DNA, it is sometimes useful to identify repeated sequences within the DNA.
Write a function to find all the 10-letter-long sequences (substrings) that occur more than once in a DNA molecule.
思路:
笨办法,用unordered_map保存所有长度为10的substring出现的次数。
代码实现:
class Solution {
public:
vector<string> findRepeatedDnaSequences(string s) {
if (s.size() < 10){
return {};
}
vector<string> ret;
unordered_map<string, int> my_map;
for (int i = 0; i < s.size()-9; ++i){
string t = s.substr(i,10);
++my_map[t];
if (my_map[t] == 2){
ret.push_back(t);
}
}
return ret;
}
};