Computer >> Máy Tính >  >> Lập trình >> Python

So sánh số phiên bản trong Python


Giả sử chúng ta phải so sánh hai số phiên bản version1 và version2. Nếu phiên bản1> phiên bản2 thì trả về 1; ngược lại khi version1

Chúng ta có thể giả định số sửa đổi mặc định cho mỗi cấp của số phiên bản là 0. Ví dụ:số phiên bản 3.4 có số sửa đổi là 3 và 4 cho số sửa đổi cấp một và cấp hai của nó. Số sửa đổi cấp thứ ba và thứ tư của nó đều bằng 0.

Vì vậy, nếu đầu vào giống như version1 =“1.0.1” và version2 =“1”, thì nó sẽ trả về +1.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • version1_arr =một mảng các số được phân tách bằng dấu chấm cho version1

  • version2_arr =một mảng các số được phân tách bằng dấu chấm cho version2

  • cho tôi trong phạm vi từ 0 đến kích thước tối đa của version1_arr và kích thước của version2_arr -

    • v1:=version1_arr [i] nếu tôi

    • v2:=version2_arr [i] nếu tôi

    • nếu v1> v2, thì trả về 1, ngược lại khi v1

  • trả về 0

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

class Solution:
   def compareVersion(self, version1, version2):
      versions1 = [int(v) for v in version1.split(".")]
      versions2 = [int(v) for v in version2.split(".")]
      for i in range(max(len(versions1),len(versions2))):
         v1 = versions1[i] if i < len(versions1) else 0
         v2 = versions2[i] if i < len(versions2) else 0
         if v1 > v2:
            return 1
         elif v1 <v2:
            return -1
      return 0
ob1 = Solution()
print(ob1.compareVersion("1.0.1","1.0"))

Đầu vào

"1.0.1"
"1.0"

Đầu ra

1