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.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/compare_version_num.py b/compare_version_num.py
new file mode 100644
index 0000000..fe8616b
--- /dev/null
+++ b/compare_version_num.py
@@ -0,0 +1,37 @@
+# 165. Compare Version Numbers
+
+"""
+given two version numbers 'version1' and 'version2', compare them. version
+numbers consist of one or more revisions joined by a dot. each revision
+consists of digits and may contain leading zeros. every revision contains at
+least one character. revisions are 0-indexed from left to right, right the
+leftmost revision being revision 0, the next revision being revision 1, and
+so on. to compare version numbers, use the following rules. if 'version1 <
+version2' return -1, if 'version1 > version2' return 1, otherwise, return 0
+"""
+
+
+class Solution(object):
+ def compareVersion(self, version1, version2):
+ """
+ :type version1: str
+ :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:
+ return 1
+ elif v1 < v2:
+ return -1
+ return 0
+
+
+if __name__ == "__main__":
+ obj = Solution()
+ print(obj.compareVersion(version1="1.01", version2="1.001"))
+ print(obj.compareVersion(version1="1.0", version2="1.0.0"))
+ print(obj.compareVersion(version1="0.1", version2="1.1"))