Viết hàm (chẳng hạn placeAt) lấy một mảng các số nguyên không âm và một chỉ mục là một số nguyên không âm. Nó nên đặt 1 tại chỉ mục đã cho, có thể dịch chuyển các mục khác theo một vị trí để bỏ trống vị trí đó, với 0 đứng cho các điểm trống.
- Nếu mục nhập tại chỉ mục mong muốn là 0, hãy điền nó bằng 1.
- Nếu không, hãy tìm 0 gần nhất bên trái của chỉ mục. Thay đổi các mục nhập một điểm còn lại vào 0 đó để tạo khoảng trống, sau đó điền chỉ mục bằng 1.
- Nếu không có 0 ở bên trái, hãy làm tương tự bên phải.
- Nếu không thể (nghĩa là nếu không có 0), trả về mảng không đổi.
Các mục được lập chỉ mục 0. Tên chức năng có thể là bất cứ điều gì bạn muốn.
Ví dụ:
(Chữ cái viết tắt cho bất kỳ giá trị nguyên dương nào.)
[a, b, 0, c, d, 0] placeAt 2 // output [a, b, 1, c, d, 0] place 2 is 0, just fill
[a, b, 0, c, d, 0] placeAt 3 // output [a, b, c, 1, d, 0] place 3 is filled, shift items left
[a, b, 0, c, d, 0] placeAt 0 // output [1, a, b, c, d, 0] place 0 is filled, can't shift left, shift items right
[a, b, 0, c, d, 0] placeAt 1 // output [a, 1, b, c, d, 0] place 1 is filled, can't shift left, shift items right
[0, a, b, 0, c, d, 0] placeAt 2 // output [a, b, 1, 0, c, d, 0] place 2 is filled, shift items left
[0, a, b, 0, c, d, 0] placeAt 4 // output [0, a, b, c, 1, d, 0] place 4 is filled, shift items left (notice you keep shifting up until a 0)
[0, 2, 0, 2] placeAt 3 // output [0, 2, 2, 1] place 3 is filled, shift items left
Đây là một thử thách golf mã. Bài viết ngắn nhất vào cuối 9 ngày sẽ thắng.
[0, 2, 0, 2] placeAt 3, nó là hợp pháp để đầu ra [2, 0, 2, 1]? Là mã cần thiết để thực sự là một chức năng được gọi là placeAt? Lưu ý rằng một số ngôn ngữ không chính xác có chức năng. "Ném một ngoại lệ" cũng có thể không áp dụng cho một số ngôn ngữ; Tôi đề nghị cho phép một đầu ra chỉ ra lỗi.
[2, 0, 2, 1]không phải là một đầu ra hợp pháp, vì bạn phải luôn thay đổi càng ít yếu tố càng tốt và bạn có thể đặt tên cho hàm theo bất cứ điều gì bạn muốn.

0sao?