aboutsummaryrefslogtreecommitdiff
path: root/compare_version_num.py
diff options
context:
space:
mode:
Diffstat (limited to 'compare_version_num.py')
-rw-r--r--compare_version_num.py24
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