题解 | #比较版本号#
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
解题思路
- 将两个字符串以'.'为分隔符划分成两个数组;
- 循环比较各位(以短的数组为界)当数组1元素 > 数组2元素,返回1;当数组1元素 > 数组2元素,返回-1;否则,比较下一位。
- 最后,处理一下多出来的位数;
- 如果都不满足,就说明这两个版本号相等,返回0。
class Solution:
def compare(self , version1: str, version2: str) -> int:
# write code here
a1 = version1.split('.')
a2 = version2.split('.')
i = 0
j = min(len(a1), len(a2))
while i < j:
if int(a1[i]) > int(a2[i]):
return 1
elif int(a1[i]) < int(a2[i]):
return -1
else:
i += 1
if len(a1) < len(a2) and int(a2[-1]) > 0:
return -1
elif len(a1) > len(a2) and int(a1[-1]) > 0:
return 1
return 0
