将DNA序列看作是只包含[‘A’,‘C’,‘G’,‘T’]4个字符的字符串,给一个DNA字符串,找到所有长度为10的且出现超过1次的子串。
例如:
s=“AAAAACCCCCAAAAACCCCCAAAAAGGGTTT”,
Return:[“AAAAACCCCC”,“CCCCCAAAAA”]
s=“AAAAAAAAAA”
Return:[“AAAAAAAAAA”]
方法一:
#include <string>
#include<vector>
#include<map>
class Solution
{
public:
Solution() {
}
~Solution() {
}
std::vector<std::string> findRepeatedDnaSequences(std::string s)
{
std::vector<std::string> result;
std::map<std::string, int> word_map;
for (int i = 0; i < s.length(); i++)
{
std::string word = s.substr(i, 10);
if (word_map.find(word) != word_map.end())
{
word_map[word]+=1;
}
else
{
word_map[word] = 1;