本文主要是介绍力扣:187. 重复的DNA序列(Java),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 题目描述:
- 输入:
- 输出:
- 代码实现:
题目描述:
DNA序列 由一系列核苷酸组成,缩写为 ‘A’, ‘C’, ‘G’ 和 ‘T’.。
例如,“ACGAATTCCG” 是一个 DNA序列 。
在研究 DNA 时,识别 DNA 中的重复序列非常有用。
给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次的 长度为 10 的序列(子字符串)。你可以按 任意顺序 返回答案。
输入:
s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
输出:
["AAAAACCCCC","CCCCCAAAAA"]
代码实现:
class Solution {public List<String> findRepeatedDnaSequences(String s) {List<String> res = new ArrayList<>();// 结果数组HashMap<String, Integer> hm = new HashMap<>();// 使用哈希表计数:所有长度为10的字串出现次数// 一次遍历for (int i = 0; i <= s.length() - 10; i++) {String s1 = s.substring(i, i + 10);// 分割长度为10的字符串hm.put(s1, hm.getOrDefault(s1, 0) + 1);// 哈希表计数if (hm.get(s1) == 2) {// 只统计出现次数为2的字串res.add(s1);}}return res;// 返回}
}
这篇关于力扣:187. 重复的DNA序列(Java)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!