第一次笔试,发挥的很糟糕(基础不好是硬伤),碰到了版本号比较这个问题,回来后搜了下,发现在LeetCode里有,正好再仔细研究下。以下是原题
比较两个版本号 version1 和 version2。
如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。示例 1: 输入: version1 = “0.1”, version2 = “1.1” 输出: -1
示例 2:输入: version1 = “1.0.1”, version2 = “1” 输出: 1
示例 3: 输入: version1 = “7.5.2.4”, version2 = “7.5.3” 输出: -1
这题初看很简单,思路很简单,以‘.’划分好,然后进行数字比大小,实际手写的时候发现很多坑。笔试的时候只有一个示例,没考虑太多写的时候就开始乱了。
第一个坑自己一开始竟然没意识到的,划分好的元素还是字符串格式,忘了int,哭,流下了基础太差的泪水。。
第二个,得到的列表长度不一样时,考虑的方法,笔试的时候想强行直接比较,写了一堆判断长度,再for循环,发现都有漏洞,卒。。。到最后绕过来,想到补0,但是已经没时间再去操作了,头也很大了。
回来痛定思痛,按着补0,操作了一下,虽然通过了,但是很不理想。看了下有相同思路补0的,写的比自己简单点,不用判断长度,果然还是练得太少。。。
class Solution:
def compareVersion(self, version1: str, version2: str) -> int:
l_1 = [int(i) for i in version1.split('.')]
l_2 = [int(i) for i in version2.split('.')]
c = abs(len(l_2)-len(l_1))
if len(l_2)> len(l_1):
l_1

这篇博客讲述了作者在笔试中遇到的版本号比较问题,通过对LeetCode中该问题的解析,分享了在实现过程中遇到的难点和解决方案,包括字符串转数字、不同长度列表的处理,以及使用补0和while循环的方法。最后,作者认识到基础练习的重要性。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



