Động lực : Đôi khi một số mục nhất định trong danh sách không được tính vào tổng số của bạn. Ví dụ, đếm hành khách trên máy bay theo hàng, nơi em bé ngồi trên vòng của cha mẹ.
Thách thức : viết chương trình chia danh sách các mục thành các phần. Mỗi khối (ngoại trừ có thể là cuối cùng) có cùng kích thước , trong đó kích thước được xác định là số lượng vật phẩm đi qua một hàm vị ngữ.
Quy tắc :
- Chương trình của bạn phải mất
- một danh sách các mặt hàng
- một kích thước số nguyên dương
- một hàm vị ngữ (lấy một mục và trả về đúng hoặc sai)
- Bạn phải trả lại danh sách đầu vào được chia thành các phần
- Mỗi đoạn là một danh sách các mục
- Nhìn chung, các mặt hàng phải được giữ theo cùng một thứ tự, không có gì bị coi thường
- Số lượng vật phẩm đi qua vị ngữ trong mỗi khối (ngoại trừ có thể là cuối cùng) phải khớp với kích thước khối đầu vào.
- các mục không có vị ngữ không được tính vào kích thước này
- Các mục không thành ngữ là
- vẫn được bao gồm trong khối đầu ra
- được phân bổ cho đoạn đầu tiên, trong trường hợp một đoạn "đầy" nhưng các mục tiếp theo là các mục không thành công
- do đó, đoạn cuối cùng có thể không chỉ bao gồm các mục bị lỗi vị ngữ
- Đoạn cuối có thể có kích thước nhỏ hơn kích thước khối vì tất cả các mục đã được tính.
Ví dụ không đầy đủ:
Ví dụ đơn giản nhất là xem xét 1
s và 0
s, trong đó hàm vị ngữ là x ==> x > 0
. Trong trường hợp này, sum
mỗi khối phải phù hợp với kích thước khối.
- mục :
[]
, kích thước :2
, vị ngữ:x > 0
->[]
hoặc[[]]
- mục :
[0, 0, 0, 0, 0, 0]
, kích thước :2
, vị ngữ:x > 0
->[[0, 0, 0, 0, 0, 0]]
- mục :
[0, 1, 1, 0]
, kích thước :2
, vị ngữ:x > 0
->[[0, 1, 1, 0]]
- mục :
[0, 1, 1, 0, 1, 0, 0]
, kích thước :2
, vị ngữ:x > 0
->[[0, 1, 1, 0], [1, 0, 0]]
- mục :
[0, 1, 0, 0, 1, 0, 1, 1, 0]
, kích thước :2
, vị ngữ:x > 0
->[[0, 1, 0, 0, 1, 0], [1, 1, 0]]
Và hãy kết thúc với hành khách trên máy bay nơi em bé ngồi trên ví dụ của cha mẹ . A
Đối với người lớn, b
đối với em bé, hàng máy bay 3
rộng chỗ ngồi, người lớn luôn được liệt kê trước em bé của họ:
- mục :
[A, b, A, b, A, A, A, b, A, b, A, A, b]
, kích thước :3
, vị ngữ:x => x == A
->[[A, b, A, b, A], [A, A, b, A, b], [A, A, b]]