Mô tả
Tại tổng công ty tập đoàn sữa, hệ thống nhân sự quản lý quyền truy cập hàng chục API nội bộ bằng một số nguyên không âm gọi là bitmask quyền. Mỗi bit trong số này đại diện cho một quyền cụ thể: bit thứ i (từ phải sang trái, bắt đầu từ 0) mang giá trị 1 nghĩa là nhân viên được cấp quyền tương ứng.
Ví dụ, bitmask 13 (tức 1101 nhị phân) mang các quyền tại vị trí bit 0, 2 và 3.
Hệ thống vừa nhận một yêu cầu truy cập mới từ một service nội bộ. Service này cần nhân viên có đồng thời một tổ hợp các quyền nhất định. Tổ hợp yêu cầu cũng được biểu diễn dưới dạng một bitmask required.
Nhiệm vụ của bạn là kiểm tra: bitmask quyền của nhân viên staff có đủ mọi quyền được yêu cầu trong bitmask required hay không? Nếu đủ, trả về true, ngược lại trả về false.
Đầu vào
Hai số nguyên không âm:
staff: bitmask quyền hiện có của nhân viên.required: bitmask tổ hợp quyền yêu cầu.
Đầu ra
Trả về một giá trị boolean:
truenếu nhân viên có đủ toàn bộ quyền yêu cầu.falsenếu thiếu ít nhất một quyền.
Ràng buộc
0 <= staff <= 10^90 <= required <= 10^9
Ví dụ
Ví dụ 1
- Đầu vào:
staff = 13, required = 5 - Đầu ra:
true
Giải thích: 13 trong hệ nhị phân là 1101, mang các quyền tại vị trí bit 0, 2 và 3. 5 trong hệ nhị phân là 0101, yêu cầu quyền tại vị trí bit 0 và 2. Vì nhân viên có đủ cả hai quyền này, kết quả là true.
Ví dụ 2
- Đầu vào: