Lấy từ câu hỏi này tại Stack Overflow. Cũng xin cảm ơn @miles và @Dada vì đã đề xuất các đầu vào kiểm tra giải quyết một số trường hợp góc.
Các thách thức
Đưa ra một mảng các giá trị nguyên, loại bỏ tất cả các số không không nằm cạnh một số giá trị khác.
Tương tự, một mục nhập nên được giữ nếu nó là một giá trị khác hoặc nếu nó là số 0 ngay lập tức gần với giá trị khác không.
Các mục được giữ nên duy trì ở đầu ra thứ tự chúng có trong đầu vào.
Thí dụ
Được
[2 0 4 -3 0 0 0 3 0 0 2 0 0]
các giá trị cần được loại bỏ được đánh dấu bằng x
:
[2 0 4 -3 0 x 0 3 0 0 2 0 x]
và vì vậy đầu ra phải là
[2 0 4 -3 0 0 3 0 0 2 0]
Quy tắc
Mảng đầu vào có thể trống (và sau đó đầu ra cũng nên trống).
Các định dạng đầu vào và đầu ra linh hoạt như bình thường: mảng, danh sách, chuỗi hoặc bất cứ thứ gì hợp lý.
Mã golf, ít tốt nhất.
Các trường hợp thử nghiệm
[2 0 4 -3 0 0 0 3 0 0 2 0 0] -> [2 0 4 -3 0 0 3 0 0 2 0]
[] -> []
[1] -> [1]
[4 3 8 5 -6] -> [4 3 8 5 -6]
[4 3 8 0 5 -6] -> [4 3 8 0 5 -6]
[0] -> []
[0 0] -> []
[0 0 0 0] -> []
[0 0 0 8 0 1 0 0] -> [0 8 0 1 0]
[-5 0 5] -> [-5 0 5]
[50 0] -> [50 0]
-0
chứ?
[010 0 0 01 1]
?
_2
thay vì-2
? Khá nhiều ngôn ngữ sử dụng định dạng đó.