Mô tả
Cổng xác thực Viettel Money nhận các header HTTP đính kèm token cấu hình dạng chuỗi key=value. Mỗi cặp khóa-giá trị cách nhau bởi dấu chấm phẩy ;. Nhiệm vụ của bạn là viết hàm phân tích chuỗi này, trích xuất danh sách các giá trị tương ứng theo đúng thứ tự xuất hiện trong chuỗi gốc.
Cụ thể, hàm nhận vào một chuỗi config và một mảng keys chứa danh sách khóa cần trích xuất. Với mỗi khóa trong keys, tìm giá trị đầu tiên khớp trong chuỗi config. Nếu khóa không xuất hiện, giá trị tương ứng là chuỗi rỗng.
Đầu vào
config: chuỗi cấu hình, các cặpkey=valuephân tách bằng;. Không có dấu chấm phẩy ở cuối.keys: mảng chuỗi chứa các khóa cần trích xuất, độ dài từ 1 đến 1000.
Đầu ra
- Mảng chuỗi chứa các giá trị tương ứng với từng khóa trong
keys, theo đúng thứ tự.
Ràng buộc
- Độ dài chuỗi
configtừ 0 đến 10^5 ký tự. - Số cặp key-value trong config từ 0 đến 10^4.
- Số phần tử mảng
keystừ 1 đến 1000. - Mỗi key và value có độ dài từ 1 đến 100 ký tự, chỉ chứa chữ cái, chữ số, dấu gạch ngang, dấu chấm.
- Mỗi key trong config là duy nhất (không trùng lặp).
Ví dụ
Ví dụ 1:
- Đầu vào:
config = "alg=HS256;typ=JWT;kid=viettel-money-2024",keys = ["alg", "kid"] - Đầu ra:
["HS256", "viettel-money-2024"]
Giải thích: Chuỗi có 3 cặp: alg=HS256, typ=JWT, kid=viettel-money-2024. Khóa alg có giá trị HS256, khóa kid có giá trị viettel-money-2024.
Ví dụ 2:
- Đầu vào:
config = "sub=user123;exp=1700000000",keys = ["iat", "sub"] - Đầu ra:
["", "user123"]
Giải thích: Khóa iat không xuất hiện trong chuỗi nên giá trị là chuỗi rỗng. Khóa sub có giá trị user123.