题解 | #比较版本号#
比较版本号
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)
