Viết hàm (sử dụng càng ít byte càng tốt) lấy một mảng hai chiều của bất kỳ số lượng cột và hàng nào trong đó:
0
đại diện cho khối trống,1
đại diện cho khối rắn.
Hàm phải trả về số đường có thể mà con rắn đi được.
Ví dụ 1:
Đầu vào:
[
[1,1,1,1,1],
[0,0,0,0,1],
[0,0,0,0,1],
]
Đầu ra: 2
Trong ví dụ trên, hàm sẽ trả về 2
vì câu trả lời là một trong những:
Ví dụ 2:
Đầu vào:
[
[1,1,1,1],
[0,0,1,1],
[0,0,1,1],
]
Đầu ra: 6
Trong ví dụ này, hàm sẽ trả về 6
vì câu trả lời là một trong những:
Chú thích:
Khi đánh giá đầu vào, bạn có thể giả sử rằng:
- Các mảng đại diện cho các cột sẽ luôn có cùng kích thước (vì vậy các mảng là hình chữ nhật);
- Có ít nhất 1 đường dẫn hợp lệ;
- Con rắn không thể đi qua các cạnh (như có thể xảy ra trong một số phiên bản của con rắn);
- Con rắn sẽ luôn có ít nhất 2 khối;
- Con rắn không thể di chuyển theo đường chéo;
- Các đường dẫn được định hướng. (vì vậy, hai đường dẫn kết thúc tại các vị trí khác nhau nhưng nhìn khác giống hệt nhau không phải là cùng một đường dẫn, nó sẽ cộng vào tổng số)
[[0,0,1,1],[0,0,1,1],[0,0,1,1]]
. Hầu hết các câu trả lời cho 16, nhưng một cho 15