Mô tả
Bạn làm kỹ sư vận hành hệ thống tại Tiki, phụ trách theo dõi luồng truy vấn API trên ứng dụng di động. Mỗi phút, hệ thống gửi về một bản ghi dạng chuỗi chứa nhiều lệnh gọi API nối tiếp nhau, phân tách bằng dấu chấm phẩy ;. Mỗi lệnh gọi có định dạng:
Trong đó <endpoint> là đường dẫn API (ví dụ GET /api/v1/products, POST /api/v1/cart), còn <thoi_gian_ms> là thời gian xử lý tính bằng mili giây (số nguyên không âm).
Nhiệm vụ của bạn: đọc chuỗi log, liệt kê các endpoint khác nhau theo thứ tự xuất hiện đầu tiên, kèm tổng thời gian xử lý tích lũy cho từng endpoint.
Đầu vào
Một chuỗi log duy nhất (kiểu chuỗi). Các bản ghi con phân tách bằng dấu chấm phẩy ;. Trong mỗi bản ghi, endpoint và thời gian phân tách bằng dấu gạch đứng |. Chuỗi có thể rỗng hoặc chứa các bản ghi trống do dư dấu phân tách — cần bỏ qua.
Đầu ra
Trả về một danh sách các cặp [endpoint, tong_thoi_gian_ms], sắp xếp theo thứ tự xuất hiện đầu tiên của endpoint trong chuỗi. Mỗi cặp là một danh sách hai phần tử: chuỗi endpoint và số nguyên tổng thời gian.
Ràng buộc
- Độ dài chuỗi
logkhông vượt quá 10^6 ký tự. - Số lượng bản ghi hợp lệ không vượt quá 10^5.
- Độ dài mỗi endpoint không vượt quá 200 ký tự.
thoi_gian_mslà số nguyên không âm, giá trị không vượt qua 10^6.- Tổng thời gian cho một endpoint có thể đạt 10^11 (nằm trong giới hạn số nguyên 64-bit, an toàn cho Python và Go).
Ví dụ
Ví dụ 1:
Đầu vào: "GET /api/v1/products|120;POST /api/v1/cart|85;GET /api/v1/products|200;GET /api/v1/orders|310"