[抄题]:

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.

Example:

Input: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"Output: ["AAAAACCCCC", "CCCCCAAAAA"]

[暴力解法]:

时间分析:

空间分析:

[优化后]:

时间分析:

空间分析:

[奇葩输出条件]:

  1. set转成arraylist直接放到括号里就行了

[奇葩corner case]:

[思维问题]:

[英文数据结构或算法,为什么不用别的数据结构或算法]:

10个数,从开始算,加到9就可以了。

for (int i = 0; i + 9 < s.length(); i++)

.substring包左不包右,所以必须写十位数。但是inde

String ten = s.substring(i, i + 10);

beginIndex =< str的值 < endIndex

[一句话思路]:

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. set的判断语句 没加就自己自动加 没必要再写一遍
  2. set用add,map用put

[二刷]:

[三刷]:

[四刷]:

[五刷]:

[五分钟肉眼debug的结果]:

[总结]:

set就是判重,一个不够用可以用两个

[复杂度]:Time complexity: O(n) Space complexity: O(n)

[算法思想:迭代/递归/分治/贪心]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

[代码风格] :

[是否头一次写此类driver funcion的代码] :

[潜台词] :

class Solution {public List<String> findRepeatedDnaSequences(String s) { //ini: two setsList<String> result = new ArrayList<String>();Set<String> seen = new HashSet<String>();Set<String> ten = new HashSet<String>();//ccif (s.length() == 0) return result;//for loop: get substringfor (int i = 0; i + 9 < s.length(); i++) {String str = s.substring(i, i+ 10);if (!seen.add(str)) ten.add(str);}//returnreturn new ArrayList(ten);}
}

View Code

转载于:https://www.cnblogs.com/immiao0319/p/9373543.html

187. Repeated DNA Sequences重复的DNA子串序列相关推荐

  1. LeetCode187—Repeated DNA Sequences

    原题 原题链接 All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: & ...

  2. Java实现 LeetCode 187 重复的DNA序列

    187. 重复的DNA序列 所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:"ACGAATTCCG".在研究 DNA 时,识别 DNA 中的重复序列有时会对 ...

  3. Leetcode 187.重复的DNA序列

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

  4. [LeetCode]187. 重复的DNA序列(java实现)暴力 + 哈希

    [LeetCode]187. 重复的DNA序列(java实现) 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总结 1. ...

  5. Repeated DNA Sequences @leetcode

    早上到公司第一件事变成了刷leetcode,发现各种题目的各种解法,真心是个挺有趣的过程.比如今天早上碰到的这个DNA序列的问题,一开始完全没有头绪,但是后来看了些文章发现,真的是二进制大法好啊! 会 ...

  6. LeetCode 187. 重复的DNA序列(哈希/位运算)

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

  7. LeetCode:187.重复的DNA序列解析

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

  8. 力扣 187. 重复的DNA序列

    1.题目 DNA序列 由一系列核苷酸组成,缩写为 'A', 'C', 'G' 和 'T'.. 例如,"ACGAATTCCG" 是一个 DNA序列 . 在研究 DNA 时,识别 DN ...

  9. 【数据结构与算法】之重复的DNA序列的算法求解

    一.题目要求 所有 DNA 都由一系列缩写为 'A','C','G' 和 'T' 的核苷酸组成,例如:"ACGAATTCCG".在研究 DNA 时,识别 DNA 中的重复序列有时会 ...

最新文章

  1. 才知道百度也提供了智能DNS服务 - 加速乐
  2. ASP.NET MVC自定义ActionResult实现文件压缩
  3. Arm architecture 第一章
  4. Python 日志模块Loguru的使用
  5. 十分钟让你明白AIDL
  6. dedecms 在模板里引入php文件夹,dedecms如何添加并引入php文件
  7. ANSI C标准预定义宏
  8. 翻译 - EXT JS 5:Controlling an Application with Router
  9. 重构Webpack系列之一 ---- 概念篇
  10. c 语言车牌识别系统课题设计,基于图像的车牌识别系统的设计和实现
  11. linux中deb文件怎么安装,deb是什么文件?deb文件怎么安装?
  12. python 视图对象_Python之路【第二十八篇】:django视图层、模块层
  13. 《今日简史》PDF/非mobi epub
  14. Android 知识点——Method put in org.json.JSONObject not mocked
  15. CCS 使用报错合集 -mcu:cc26xx
  16. 用友NCV6.5继续服务大型企业互联网化
  17. ARM V8 base instruction -- WFI
  18. 平均股价的时间序列图形_每年的平均股价怎么算
  19. 使用AIDA64极致版设置通过RGB背光设备映射电脑状态
  20. Quantum LeaPs(QP)介绍

热门文章

  1. malloc()函数解析
  2. 关系数据库SQL语言核心功能
  3. 晶振测试与使用中的主要问题(z)
  4. CURL HTTPS POST
  5. 机器学习 处理不平衡数据_在机器学习中处理不平衡数据
  6. r中如何求变量的对数转换_对数转换以求阳性。
  7. linux应用开发:日志记录
  8. 小白信用卡提额攻略,2年轻松提额20万!
  9. 2008年夜饭时随手拍的两张照片
  10. Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本