题解 | #比较版本号#
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
把字符串转换为整型列表然后逐一比较,简单易懂
class Solution: def compare(self , version1: str, version2: str) -> int: # write code here # 把字符串转换为整型数组 version1 = list(map(int, version1.split('.'))) version2 = list(map(int, version2.split('.'))) flag = 1 # 把短的版本号设置为version1,用flag标记已经交换v1v2位置 if len(version1) >= len(version2): version1, version2 = version2, version1 flag = -1 for i in range(len(version2)): # 如果已经超出了短的版本号范围,就只需要判断长版本号的剩余部分是否为零即可 if i >= len(version1): # 如果不为零则说明长版本号更大,为零则继续比较剩下的元素 if version2[i] != 0: return flag*(-1) else: continue elif version1[i] == version2[i]: continue elif version1[i] > version2[i]: return flag elif version1[i] < version2[i]: return flag*(-1) return 0
时间复杂度:O(max(n,m))
空间复杂度:O(1)