diff options
author | Jack Sangdahl <[email protected]> | 2025-09-22 20:24:54 -0600 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2025-09-22 20:24:54 -0600 |
commit | b805e692752ded03241e2f000da61f9760901f57 (patch) | |
tree | 5924bb8f24ed4cf354f30481601dcdcd485f87d6 /compare_version_num.py | |
parent | 844c8a0bbcb890ec4ddd5ef485b767b00b44a78f (diff) | |
download | leetcode-b805e692752ded03241e2f000da61f9760901f57.tar.gz leetcode-b805e692752ded03241e2f000da61f9760901f57.zip |
165. compare version numbers
Diffstat (limited to 'compare_version_num.py')
-rw-r--r-- | compare_version_num.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/compare_version_num.py b/compare_version_num.py index fe8616b..9df14ff 100644 --- a/compare_version_num.py +++ b/compare_version_num.py @@ -18,15 +18,25 @@ class Solution(object): :type version2: str :rtype: int """ - n1 = [int(v) for v in version1.split(".")] - n2 = [int(v) for v in version2.split(".")] - for i in range(max(len(n1), len(n2))): - v1 = n1[i] if i < len(n1) else 0 - v2 = n2[i] if i < len(n2) else 0 - if v1 > v2: + i, j, num1, num2 = 0, 0, 0, 0 + n, m = len(version1), len(version2) + while i < n or j < m: + while i < n and version1[i] != ".": + num1 = num1 * 10 + (ord(version1[i]) - ord("0")) + i += 1 + while j < m and version2[j] != ".": + num2 = num2 * 10 + (ord(version2[j]) - ord("0")) + j += 1 + if num1 > num2: return 1 - elif v1 < v2: + elif num1 < num2: return -1 + num1 = 0 + num2 = 0 + if i < n: + i += 1 + if j < m: + j += 1 return 0 |