算法-版本号升级

背景

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

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

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

问题拆解

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

算法-版本号升级_第1张图片

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

算法-版本号升级_第2张图片

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

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

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

算法-版本号升级_第3张图片

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

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

shigen一起,每天不一样!

你可能感兴趣的:(算法,java,python)