背景
今天看到了一个工具类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
一起,每天不一样!