当前位置: 首页 > news >正文

【教3妹学编程-算法题】重复的DNA序列

注意保暖

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包”
2哥 :3妹,什么事呀这么开心呀。
3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。
2哥:是啊,都快立冬了,天气还是这么热。今年的冬天比以往来的要晚一些。
3妹:晚来也是要来的,看天气预报 下周要降温,估计没几天这种暖的天气了。
2哥:注意保暖啊3妹,看你们女生还穿着裙子,不能只要美丽,就冻人啊。
3妹:我才不,天冷了我就穿秋裤,卷死她们。
2哥:说到卷她们,不如做一道题,在技术上卷死她们。 内外兼修~

题目:

DNA序列 由一系列核苷酸组成,缩写为 ‘A’, ‘C’, ‘G’ 和 ‘T’.。

例如,“ACGAATTCCG” 是一个 DNA序列 。
在研究 DNA 时,识别 DNA 中的重复序列非常有用。

给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次的 长度为 10 的序列(子字符串)。你可以按 任意顺序 返回答案。

示例 1:

输入:s = “AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT”
输出:[“AAAAACCCCC”,“CCCCCAAAAA”]
示例 2:

输入:s = “AAAAAAAAAAAAA”
输出:[“AAAAAAAAAA”]

提示:

0 <= s.length <= 105
s[i]==‘A’、‘C’、‘G’ or ‘T’

思路:

思考

哈希表
我们可以用一个哈希表统计 s 所有长度为 10 的子串的出现次数,返回所有出现次数超过 10 的子串。

代码实现时,可以一边遍历子串一边记录答案,为了不重复记录答案,我们只统计当前出现次数为 2 的子串。

java代码:

class Solution {static final int L = 10;public List<String> findRepeatedDnaSequences(String s) {List<String> ans = new ArrayList<String>();Map<String, Integer> cnt = new HashMap<String, Integer>();int n = s.length();for (int i = 0; i <= n - L; ++i) {String sub = s.substring(i, i + L);cnt.put(sub, cnt.getOrDefault(sub, 0) + 1);if (cnt.get(sub) == 2) {ans.add(sub);}}return ans;}
}
http://www.lryc.cn/news/219541.html

相关文章:

  • jetsonTX2 nx配置yolov5和D435I相机,完整步骤
  • RflySim | 滤波器设计实验一
  • 设计模式——责任链模式(Chain of Responsibility Pattern)+ Spring相关源码
  • 游戏中的随机抽样算法
  • 【Qt之QtXlsx模块】安装及使用
  • 如何在 TFRecord 文件上训练 Keras 模型实现黑色素瘤分类器
  • C++ 复制控制之复制构造函数
  • Windows ObjectType Hook 之 ParseProcedure
  • 下载树莓派对应的64位Ubuntu系统步骤
  • 网络运维Day03
  • LangChain+LLM实战---ChatGPT的工作原理
  • Appium知多少
  • 【实战Flask API项目指南】之五 RESTful API设计
  • 尚硅谷大数据项目《在线教育之实时数仓》笔记005
  • 算法通过村第十八关-回溯|青铜笔记|什么叫回溯(中篇)
  • generate by chatgpt:应用上线前的checkList(部分是我自己的回答)
  • Redis实战 | 使用Redis 的有序集合(Sorted Set)实现排行榜功能,和Spring Boot集成
  • 基于信号功率谱特征和GRNN广义回归神经网络的信号调制类型识别算法matlab仿真
  • matplotlib从起点出发(10)_Tutorial_10_Layout
  • HTTP头部信息解释分析(详细整理)(转载)
  • 集线器、交换机、网桥、路由器、网关
  • 项目实战:新增@Controller和@Service@Repository@Autowire四个注解
  • 校验 ChatGPT 4.0 真实性的三个经典问题:快速区分 GPT3.5 与 GPT4,并提供免费测试网站
  • Jetpack:030-Jetpack中的状态
  • AD教程 (七)元件的放置
  • ubuntu22.04为什么鼠标会自动丢失焦点
  • FastBond2阶段2——基于ESP32C3开发的简易IO调试设备
  • 03、SpringBoot + 微信支付 ---- 创建订单、保存二维码url、显示订单列表
  • 【echarts基础】在柱形图上设置文本
  • 小户型工业风,陌生上开花知书香。福州中宅装饰,福州装修