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