思路:从头开始遍历整个数组,用一个set分别记录该字符串是否出现过,用另外一个set记录该字符串是否已经在储存结果的向量中即可。
class Solution {
public:
vector<string> findRepeatedDnaSequences(string s) {
if (s.size() < 10) return{};
vector<string> ans;
unordered_set<string> ss;
unordered_set<string> t;
for (int i = 0; i < s.size() - 9; ++i)
{
if (ss.count(s.substr(i, 10)))
{
if (!t.count(s.substr(i, 10)))
{
ans.push_back(s.substr(i, 10));
t.insert(s.substr(i, 10));
}
}
else
{
ss.insert(s.substr(i, 10));
}
}
return ans;
}
};