Con nhỏ của tôi có một món đồ chơi như thế này:
Đồ chơi này bao gồm 10 thùng nhỏ có thể xếp chồng lên nhau, chúng ta sẽ đánh số từ 1 (cái nhỏ nhất) đến 10 (cái lớn nhất). Đôi khi anh ta làm những đống nhỏ và đồ chơi kết thúc như thế này:
Chúng ta có thể biểu diễn sơ đồ các cọc như thế này:
1 6
4 9 2 7
5 10 3 8
---------- <-- Floor
1 2 3 4 <-- Pile #
Hoặc, đặt nó theo một cách khác:
[[4,5],[9,10],[1,2,3],[6,7,8]]
Bộ cọc xô này có thể dễ dàng đóng gói lại để xây dựng lại bộ ban đầu (hình ảnh đầu tiên) chỉ bằng cách đặt liên tiếp các cọc nhỏ hơn vào trong các thùng lớn hơn:
1 1 6
2 2 7
1 6 3 6 3 8
4 9 2 7 4 9 7 4 9
5 10 3 8 5 10 8 5 10
---------- > [Pile 3 to 1] > ---------- > [Pile 4 to 2] > ---------- > [Pile 1 to 2] > Done!
1 2 3 4 1 2 3 4 1 2 3 4
Tuy nhiên, đôi khi con tôi cố gắng xây dựng các tòa tháp, hoặc ném xô đi, và các cọc cuối cùng không nhất quán và bộ ban đầu không thể được xây dựng lại chỉ bằng cách đặt một đống bên trong một cái khác. Ví dụ về điều này:
[[1,3,2],[4]] (the kid tried to build a tower by placing a bigger bucket
over a smaller one, we would need to reorder the buckets
first)
[[1,3,4],[2]] (the kid left aside an unordered bucket, we would need to remove
bucket #1 from pile #1 before restacking)
[[1,2,3],[5]] (the kid lost a bucket, we need to find it first)
Thử thách
Đưa ra một danh sách các danh sách số nguyên biểu thị một bộ cọc xô, trả về giá trị trung thực nếu danh sách đó đại diện cho một bộ cọc có thể đóng gói lại dễ dàng hoặc falsey trong bất kỳ trường hợp nào khác.
- Đầu vào sẽ được cung cấp dưới dạng danh sách các số nguyên, biểu thị các nhóm từ trên xuống dưới cho mỗi ngăn xếp.
- Sẽ không có cọc bắt đầu trống (bạn sẽ không nhận được
[[1,2,3],[],[4,5]]
đầu vào). - Tổng số xô có thể là bất kỳ trong phạm vi số nguyên hợp lý.
- Con tôi chỉ có một bộ xô nên sẽ không có yếu tố trùng lặp.
- Bạn có thể chọn bất kỳ hai giá trị nhất quán (và nhất quán) cho tính trung thực hoặc falsey.
- Các nhóm sẽ được gắn nhãn từ # 1 đến #N, là
N
số nguyên lớn nhất trong danh sách các số nguyên. Con tôi vẫn chưa biết khái niệm về số không. - Bạn có thể nhận được đầu vào ở bất kỳ định dạng hợp lý nào miễn là nó đại diện cho một nhóm các thùng. Chỉ cần xác định nó trong câu trả lời của bạn nếu bạn thay đổi cách bạn nhận được đầu vào.
- Đây là môn đánh gôn , vì vậy có thể chương trình / chức năng ngắn nhất cho mỗi ngôn ngữ sẽ giành chiến thắng!
Ví dụ
Input: [[4,5],[9,10],[1,2,3],[6,7,8]]
Output: Truthy
Input: [[6,7,8,9,10],[1],[2],[3,4,5],[11,12,13]]
Output: Truthy
Input: [[2,3,4],[1],[5,6,7]]
Output: Truthy
Input: [[1,2],[5,6],[7,8,9]]
Output: Falsey (buckets #3 and #4 are missing)
Input: [[2,3,4],[5,6,7]]
Output: Falsey (bucket #1 is missing)
Input: [[1,3,4],[5,7],[2,6]]
Output: Falsey (non-restackable piles)
Input: [[1,4,3],[2],[5,6]]
Output: Falsey (one of the piles is a tower)