题目描述:
所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。
编写一个函数来查找目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。
示例:
输入:s = “AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT”
输出:[“AAAAACCCCC”, “CCCCCAAAAA”]
方法1:
主要思路:
(1)使用unordered_map来存储已经出现过的字符串,用来快速确定出现过的字符串;
(2)重复的字符串只统计一次,压入结果中,通过对应的int值来实现;
class Solution {
public:
vector<string> findRepeatedDnaSequences(string s) {
unordered_map<string,int> mp;
int end_s=s.size()-9;//终止位置