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

【LeetCode】433.最小基因变化

1. 题目

在这里插入图片描述

2. 思想

这题的思想很经典,使用bfs求最短路径。相似的题目还有这道题。

把每次合理的变换都记录在队列中,然后先进先出,同时记录出执行的次数,得到最后的结果。同时需要把历史上曾经入队的基因串都放到字典里,省的重复遍历。

3. 代码

class Solution:def minMutation(self, startGene: str, endGene: str, bank: List[str]) -> int:que = deque()que.append((startGene,0))vis = set()vis.add(startGene)# 可以转换的目标序列trans = ['A','C','G','T']while(len(que)):# 得从左侧弹出一个数来front, step = que.popleft()# print(front, step)if front == endGene:return step# 从各个维度对front进行修改for i in range(len(front)):for t in trans:new_gene = front[0:i] + t + front[i+1::]                    if new_gene in bank and new_gene not in vis:# print("new_gene = ",new_gene)vis.add(new_gene)que.append((new_gene, step+1))return -1

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Git 命令常用
  • linux之prometheus+grafana
  • 报错解决——苹果电脑mac装windows10,总是提示“启动转换”安装失败:拷贝Windows安装文件时出错
  • Linux | Linux进程万字全解:内核原理、进程状态转换、优先级调度策略与环境变量
  • 【网络】UDP回显服务器和客户端的构造,以及连接流程
  • 保研考研机试攻略:第四章——高精度问题
  • Qt如何调取打印机
  • 关于xilinx的FFTIP的使用和仿真
  • JAVA面试汇总
  • c++ opencv与Tesseract文字提取
  • 基于华为atlas的皮带跑偏、空载、堆煤、启停探索
  • vue-cron-builder一个相对简易的cron表达式生成插件UI管理jsvascript
  • Stability AI发布了单目视频转4D模型的新AI模型:Stable Video 4D
  • 数据结构:二叉树的广度优先遍历与深度优先遍历(递归方法)。C++及其新特性分别实现
  • Apache Tomcat 信息泄露漏洞CVE-2024-21733、CVE-2024-24549和CVE-2024-34750排查处理
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 78. Subsets
  • Electron入门介绍
  • HTML5新特性总结
  • Java|序列化异常StreamCorruptedException的解决方法
  • JSDuck 与 AngularJS 融合技巧
  • Making An Indicator With Pure CSS
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 构造函数(constructor)与原型链(prototype)关系
  • 深度解析利用ES6进行Promise封装总结
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 提醒我喝水chrome插件开发指南
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​Redis 实现计数器和限速器的
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • !!Dom4j 学习笔记
  • (13)DroneCAN 适配器节点(一)
  • (C语言)共用体union的用法举例
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (九)c52学习之旅-定时器
  • (算法)大数的进制转换
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)Sql Server 保留几位小数的两种做法
  • (转)Sublime Text3配置Lua运行环境
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • ./configure,make,make install的作用
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net反编译的九款神器
  • .NET面试题(二)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .vimrc 配置项
  • /bin/bash^M: bad interpreter: No such file or directory
  • @Async 异步注解使用
  • @Autowired自动装配
  • @SpringBootConfiguration重复加载报错
  • [100天算法】-x 的平方根(day 61)