所有 DNA 由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。

编写一个函数来查找 DNA 分子中所有出现超多(过)一次的10个字母长的序列(子串)。

示例:

输入: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" 输出: ["AAAAACCCCC", "CCCCCAAAAA"]

需要注意长度只能是10位,而且不能有重复。

因为只有4个字母,还有一种方法是使用0,1,2,3代表这四个字母。每个字母占2bit,一个字符串就只需要占20bit。

  class Solution
{
public:
vector<string> findRepeatedDnaSequences(string s)
{
int len = s.size();
map<string, int> save;
vector<string> ans;
if (len <= 10)
{
return ans;
}
for (int j = 0; j <= len - 10; j++)
{
string str = string(s.begin() + j, s.begin() + j + 10);
if (save[str] == 1)
{
ans.push_back(str);
save[str]++;
}
else
{
save[str]++;
}
}
return ans;
}
};

最新文章

  1. [译]Atlassian Git系列教程
  2. maven css/js 压缩配置
  3. 【C#】ASP.NET网页中添加单点登录功能
  4. 深入浅出百度地图API开发系列(1):前言
  5. bzoj1015:[JSOI2008]星球大战starwar
  6. 访问 HTML中元素的方法
  7. date 、cal、bc
  8. HBase写数据
  9. LeetCode算法题-N-ary Tree Preorder Traversal(Java实现)
  10. jQuery使用(十二):工具方法之type()之类型判断
  11. centos7设置静态IP地址
  12. Man方法
  13. 51nod--1265 四点共面 (计算几何基础, 点积, 叉积)
  14. Django 学习第四天——Django 模板标签
  15. p3c安装使用 编码规范扫描 阿里巴巴出品,挺好用的
  16. You Don&#39;t Know JS: Async &amp; Performance(第一章, 异步:now &amp; later)
  17. 693. Binary Number with Alternating Bits
  18. c#中(&amp;&amp;,||)与(&amp;,|)的区别和应用
  19. Java用freemarker导出word
  20. 如何使用socket进行java网络编程(五)

热门文章

  1. NX二次开发-UF_ASSEM_ask_component_data获取装配部件的相关信息
  2. redis和redis php扩展安装
  3. [JZOJ 5600] Arg
  4. OpenStack与KVM的区别与联系
  5. faster-rcnn算法总结
  6. iOS开发inputView和inputAccessoryView
  7. PE头里的东西更多。。。越看越恶心了,我都不想看了
  8. Activiti学习笔记9 — UserTask共有任务的使用
  9. 清空资源管理器访问过FTP的账号、密码
  10. php 查看linux服务器的磁盘使用情况