Số học
Mô tả
Tại các siêu thị WinMart, mỗi thẻ thành viên VinID được gắn một dấu vân tay số dưới dạng chuỗi 64 bit, sinh ra từ mã vạch trên thẻ. Khi khách quét thẻ ở quầy thanh toán, hệ thống cần so sánh nhanh vân tay số vừa quét với vân tay số gốc trong cơ sở dữ liệu để phát hiện thẻ trùng lặp hoặc lỗi đọc mã.
Khoảng cách Hamming giữa hai chuỗi bit là số vị trí mà bit tại vị trí đó khác nhau. Ví dụ hai bit 1 và 0 là khác nhau, còn 1 và 1 là giống nhau. Khoảng cách càng nhỏ thì hai thẻ càng giống nhau.
Nhiệm vụ của bạn: cho hai chuỗi bit có cùng độ dài, hãy tính khoảng cách Hamming giữa chúng.
Đầu vào
- Chuỗi
a: chuỗi bit thứ nhất, chỉ gồm ký tự'0'và'1', độ dài từ 1 đến 64. - Chuỗi
b: chuỗi bit thứ hai, chỉ gồm ký tự'0'và'1', độ dài bằng đúng độ dài chuỗia.
Đầu ra
- Trả về một số nguyên không âm: khoảng cách Hamming giữa
avàb.
Ràng buộc
- Hai chuỗi luôn có cùng độ dài.
- Mỗi ký tự trong chuỗi chỉ là
'0'hoặc'1'.
Ví dụ
Ví dụ 1
- Đầu vào:
a = "1011001",b = "1001001" - Đầu ra:
1 - Giải thích: So sánh từng cặp bit theo vị trí từ trái sang phải:
- Vị trí 1:
1vs1→ giống - Vị trí 2:
0vs0→ giống - Vị trí 3:
1vs0→ khác - Vị trí 4 đến 7: đều giống nhau.
- Có đúng 1 vị trí khác nhau, nên khoảng cách Hamming là 1.
- Vị trí 1:
Ví dụ 2
- Đầu vào:
a = "111000",b = "000111" - Đầu ra:
6 - Giải thích: Tất cả 6 vị trí đều có bit khác nhau, nên khoảng cách Hamming là 6.
Ví dụ 3
- Đầu vào:
a = "1",b = "1" - Đầu ra:
0 - Giải thích: Hai chuỗi giống hệt nhau, không có vị trí nào khác, kết quả là 0.