Mô tả
Tại một nhóm phát triển của FPT Software, các kỹ sư mỗi tuần đều build ra nhiều gói thư viện nội bộ để publish lên kho chung. Mỗi gói được gắn một chuỗi phiên bản, ví dụ 2.5.1 hay 1.12.0. Chuỗi này gồm nhiều thành phần số cách nhau bởi dấu chấm ..
Trước khi publish, hệ thống cần biết gói vừa build là mới hơn, cũ hơn hay bằng gói đang có trên kho. Quy tắc so sánh rất tự nhiên: duyệt từng cặp thành phần từ trái sang phải. Tại vị trí đầu tiên mà hai giá trị khác nhau, gói nào có giá trị lớn hơn ở vị trí đó sẽ là gói mới hơn. Nếu một chuỗi ngắn hơn, các thành phần thiếu được coi bằng 0.
Nhiệm vụ của bạn: cho hai chuỗi phiên bản v1 và v2, hãy trả về:
1nếuv1mới hơnv2,-1nếuv1cũ hơnv2,0nếu hai phiên bản bằng nhau.
Đầu vào
Hai chuỗi ký tự v1 và v2, mỗi chuỗi là một phiên bản hợp lệ.
Đầu ra
Trả về một số nguyên: 1, -1 hoặc 0 theo quy tắc trên.
Ràng buộc
1 ≤ độ dài mỗi chuỗi ≤ 10^5.- Mỗi chuỗi có từ 1 đến 1000 thành phần, phân tách bởi dấu chấm.
- Mỗi thành phần là một số nguyên không âm, không có chữ số 0 ở đầu (trừ khi nó chính là
0). - Giá trị mỗi thành phần ≤
10^9.
Ví dụ
Ví dụ 1
- Đầu vào:
v1 = "1.2.3",v2 = "1.2.3" - Đầu ra:
0 - Giải thích: Hai chuỗi giống hệt nhau ở mọi thành phần, nên trả về
0.
Ví dụ 2