算法-版本号升级

news2024/11/25 4:57:57

背景

今天看到了一个工具类AutoUpgradeVersionUtil,觉得很有意思,大体的作用是版本号的升级,类似于从0.0.1-> 0.0.2这样的。我一想,我之前刷算法的时候这样的案例遇到的多着呢,还有很多种的变种!

  • 数字+1
  • 大数的加法
  • 链表合并

这两种场景是我觉得很熟悉的,本着不放过这个问题的原则,我开始了DIY实现一下。本篇文章中,shigen将展示Java代码和python代码的实现。

问题拆解

为了方便描述,shigen画了一个草图:

类似于我们的+1运算,先将版本号的每一位提取出来,然后从最后一位+1,如果+1之后的数小于10,则保留,大于10,该位置1。说起来很简单,但是实践起来却是是有一点点的复杂,这里,shigen选取的是递归的思想。

其实3-17行的递归是需要好好理解一下的,shigen在初次看到这个的时候也是一脸的懵,最后想了一下想明白了。

最后预期的输出结果是:2.0.0

那Java的写法其实是有点复杂的,特别是去处理字符串的时候。python肯定要简洁一些,现在shigen采用python代码实现一下。

其实比较起来,都差不多,提供两种编程语言的实现吧。

好了,以上就是《算法-版本号升级》的全部内容了,觉得不错的话,记得点赞、在看、转发、关注哈,感谢您的支持。

shigen一起,每天不一样!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1043937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生Kubernetes:K8S安全机制

目录 一、理论 1.K8S安全机制 2.Authentication认证 3.Authorization授权 4.Admission Control准入控制 5.User访问案例 6.ServiceAccount访问案例 二、实验 1.Admission Control准入控制 2.User访问案例 3.ServiceAccount访问案例 三、问题 1.生成资源报错 2.镜…

IDM中下载请求两次无法下载的解决办法

IDM中下载请求两次无法下载的解决办法 遇到的问题描述solution分析原因 遇到的问题描述 如果你在其他地方的帖子无法解决,试试我的包治百病! 本人的idm版本老一点,很久没更新。在下载很多文件的时候会出现两次重复下载的情况,今天…

【设计模式】四、工厂模式

文章目录 概述工厂模式简单工厂模式:工厂方法模式抽象工厂模式小结 概述工厂模式 传统方式: 简单工厂模式: 简单工厂模式的设计方案: 定义一个可以实例化 Pizaa 对象的类,封装创建对象的代码。 存在的问题: 简单工厂…

微信小程序 语法学习

1. 注册小程序账号 https://mp.weixin.qq.com/cgi-bin/wx 2. 获取appId 开发管理 -> 开发设置 3. 下载开发工具 https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html 4. 登录开发工具 不推荐游客模式,使用微信扫描 工具内置了很多模…

25835-2010 缆索用环氧涂层钢丝 阅读笔记

声明 本文是学习GB-T 25835-2010 缆索用环氧涂层钢丝. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了缆索用环氧涂层钢丝的术语和定义、产品标记、订货内容、材料、涂覆、技术要求、涂层 的修补、试验方法、检验规则、包装、标…

转载-C#学习笔记-基本概念(CLR、CTS、CLS...)

1. CLR(Common Language Runtime,公共语言运行时(库)) 可由多种.NET语言使用的运行时环境,其主要作用是定位、加载和管理.NET类型、内存管理、安全检查、线程管理等。.NET运行库提供了一个定义明确的运行库层,可以被支持.NET的所有语言和平台…

【萌新的RiscV学习之流水线结构的概述-7】

萌新的RiscV学习之流水线结构的概述-7 之前写完了单周期的指令 目前朝着流水线迈进 由于涉及学业机密 就不展示代码了 主要展示学习过程和一些想法 由于时钟周期必须满足所有指令中最坏的情况,所以不能使用那些缩短常用指令执行时间而不改变最坏情况的实现技术。因…

一键导入照片就能转成电子相册?

每次旅行、每个瞬间,都值得被珍藏。无论是生日、聚会还是旅行,这款神器都能帮你记录下美好瞬间。你只需要上传照片,选择几个模板,就能在几分钟内拥有一本精美的电子相册! 首先这个神器叫做FLBOOK制作3D仿真翻页电子杂志…

VMware CentOS7 忘记root密码如何更改

VMware CentOS7 忘记root密码如何更改 1、进来的页面马上点上下键停止自动进入 (Immediately click the up and down buttons on the incoming page to stop automatic entry) 2、点键盘e键进入编辑页面e (Click the keyboard e key to en…

基于51单片机气体检测报警系统-proteus仿真-源程序

一、系统方案 1、本设计采用51单片机作为主控器。 2、MQ5采集气体值送到液晶1602显示。 3、按键设置报警阀值,声光报警。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 void init_1602() //初始化 { lcdwc(0x01); lcdwc(0x38)…

ArcGIS实战教程

ArcGIS实践教程(1)通过ArcMap把mxd格式转换为dwg格式 ArcGIS实践教程(2)ArcMap将excel数据转换为shp ArcGIS实践教程(3)ArcMap导入Excel属性数据 ArcGIS实践教程(4)利用ArcGIS进行…

NPDP证书,为什么这么多人考?

NPDP证书至2016年引进国内,考试人数就持续增长,不仅是新产品开发唯一 的职业证书,在产品管理这一领域的知名度也在前列,那么这个证书的作用在哪里呢? 想考npdp证书,npdp干货可下载: 1、就业范围…

YOLOV1论文精度

YOLOV1:You only look once 1.介绍 1.1 简介: 传统的目标检测算法如R-CNN都是先生成候选框,然后在分类器上进行分类,由于每个部分都是分开训练,所以很难去优化而且速度比较慢。而yolov1把目标检测当成一个回归问题&…

2023年融资融券费率最低的证券公司,佣金万一,融资利率5%永久

2023年信用账户新开户,融资利率最低5%,专项融券2.99%起! 了解融资利息之前先看看融资融券业务开通要求: ①在任意券商交易时间满半年。 ②在开户券商连续20个交易日日均资产超过50W。如:账户保持100w,只需要10个交易日…

消息中间件(二)——kafka

文章目录 Apache Kafka综述什么是消息系统?点对点消息类型发布-订阅消息类型 什么是Kafka?优点关键术语Kafka基本原理用例 Apache Kafka综述 在大数据中,会使用到大量的数据。面对这些海量的数据,我们一是需要做到能够收集这些数据&#xf…

【HCIE】10.EVPN

VPLS技术,公共网络中的一个L2VPN VPN一共有8种类,三大属性是:MPLS(IP),L2(L3),P2P(P2MP) MPLS VPN的属性是:MPLS,L3,P2MP VPLS和EVPN的属性是:MPLS L2 P2MP L3vpn是两个不在同一网段的网络互通 L2vpn是…

【必看】自动化测试:selenium(环境部署和元素定位)

一、什么是selenium? > 一个web自动化测试工具; 二、主流的自动化工具: > QTP:收费 支持(支持web、桌面软件自动化) > selenium:免费,开源 只支持web项目 > Robot frameword: 基于Python扩…

VM装Windows虚拟机扩容

1.进入服务器CMD模式,输入diskpart,回车 2.查看卷 list volume 3.指定扩容的磁盘 select volume 1 4.查看磁盘 list disk 5.查看逻辑分区 list parttition 6.选择需要扩展的逻辑分区 select partition 1 7.扩展 extend 8.退出并查看磁盘大小

Linux系统离线安装Python

目录 一、简介 二、前提准备 三、下载Python源码 四、将离线python包传输到Linux主机 五、编译以及创建软链接 一、简介 由于工作原因,我们经常会在内网环境下使用Linux,不过这样会让我们安装一些软件变得困难,例如需要安装Python。虽然…

工业静电控制ESD防静电手环监控看板的优势

在现代工业生产中,静电问题一直是令人头痛的难题。静电不仅会对产品质量造成严重影响,还可能导致设备故障和生产线停工。为了解决这一问题,一种新型的防静电监测系统应运而生——ESD防静电手环监控看板。该系统采用全自动智能测量、预警和提示…