Compare Version Number

题目描述

解题方法

这一题的关键是有各种corner case,更体现了要先把各种test case和面试官沟通 清楚的重要性! test cases

  • 1.0 vs 1
  • 1.1.3 vs 1.1
  • 0.0 vs 0.1

所以应该一直比较到有一个string结束了才可以,另一个string如果已经超出, 就用0来作为它的value比较。

Solution

class Solution:
    # @param A : string
    # @param B : string
    # @return an integer
    def compareVersion(self, A, B):
        l_a = A.split(".")
        l_b = B.split(".")
        length_a = len(l_a)
        length_b = len(l_b)

        max_length = max(length_b, length_b)

        for i in range(max_length):
            num_a = int(l_a[i]) if i < length_a else 0
            num_b = int(l_b[i]) if i < length_b else 0
            if num_a > num_b:
                return 1
            elif num_a < num_b:
                return -1

Reference