Giả sử chúng ta có một mảng nums biểu diễn mã hóa của một chuỗi nhị phân có kích thước k. Cần kiểm tra xem mã hóa đã cho có xác định duy nhất một chuỗi nhị phân hay không. Mã hóa này chứa các số đếm của các chuỗi 1 liên tiếp được phân tách bởi một số 0 đơn lẻ.
Ví dụ, nếu đầu vào là nums = [4, 2, 3], k = 11, thì đầu ra sẽ là True vì tồn tại chuỗi nhị phân 11110110111 có độ dài k = 11.
Các bước giải quyết:
- total := tổng của tất cả các phần tử trong nums.
- total := total + len(nums) - 1 (cộng thêm số lượng số 0 phân tách).
- Trả về True nếu total bằng k, ngược lại False.
Xem ví dụ dưới đây để hiểu rõ hơn:
Ví dụ
def solve(nums, k):
total = sum(nums)
total += len(nums) - 1
return total == k
nums = [4, 2, 3]
k = 11
print(solve(nums, k))
Đầu vào
[4, 2, 3], 11
Đầu ra
True