Mô tả
Cô Lan làm cán bộ hồ sơ tại phường Quận 1, mỗi ngày cô phải rà hàng trăm thẻ cư trú. Mỗi thẻ có một dãy vạch đen trắng thể hiện mã nhị phân: vạch đen là bit 1, vạch trắng là bit 0. Đầu đọc thẻ xuất ra một chuỗi chỉ toàn bit 0 và 1. Để tra nhanh trên hệ thống, cô cần đổi chuỗi đó ra mã thập phân.
Hơn nữa, phường chia thành hai khu vực: nếu bit ngoài cùng bên trái là 0 thì thẻ thuộc khu dân cư, mã phân khu là 0; nếu bit ngoài cùng bên trái là 1 thì thẻ thuộc khu thương mại, mã phân khu là 1.
Nhiệm vụ của bạn: cho một chuỗi nhị phân, hãy đổi ra số thập phân tương ứng và xác định mã phân khu. Trả về một danh sách gồm hai phần tử: số thập phân và mã phân khu.
Đầu vào
Một chuỗi s gồm các ký tự 0 và 1.
Đầu ra
Trả về một danh sách [so_thap_phan, ma_phan_khu].
Ràng buộc
- Độ dài chuỗi
s: từ1đến31ký tự. - Số thập phân kết quả nằm trong khoảng từ
0đến2^31 - 1, fits vừa trong số nguyên 32-bit.
Ví dụ
Ví dụ 1:
- Đầu vào:
"1011" - Trả về:
[11, 1] - Giải thích từng bước:
1011ở hệ nhị phân =1×2^3 + 0×2^2 + 1×2^1 + 1×2^0=8 + 0 + 2 + 1=11.- Bit ngoài cùng bên trái là
1nên mã phân khu là1(khu thương mại). - Kết quả:
[11, 1].
Ví dụ 2:
- Đầu vào:
"0" - Trả về:
[0, 0] - Giải thích: Chuỗi chỉ một bit
0, giá trị thập phân là0, mã phân khu .