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
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ (Python)
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