Thử thách
Đưa ra một lưới hình chữ nhật gồm các ký tự ascii có thể in thành một chuỗi hoặc thông qua đầu vào tiêu chuẩn, viết một hàm hoặc chương trình thu gọn các ký tự không phải khoảng trắng thành một đống ở phía dưới.
Những quy định:
- Đầu ra có cùng kích thước và ký tự như đầu vào.
- Một nhân vật không phải không gian tại
(row a,column b)
không thể có một ký tự khoảng trắng' '
tại(a-1, b)
,(a-1,b-1)
hoặc(a-1,b+1)
, nơi các hàng được đánh số từ dưới cùng. Điều này có hậu quả là tất cả các cọc thẳng đứng sẽ sụp đổ sang một bên. - Một nhân vật không phải không gian có thể di chuyển ở hầu hết các
(initial height - final height)
nơi bên trái hoặc bên phải (xem Hình 1). - Bạn có thể giả sử hình ảnh có đủ không gian để thu gọn mà không có nhân vật rơi ra khỏi màn hình.
Hình 1: vị trí cuối cùng có thể cho các ký tự @#$
được hiển thị x,y,z
tương ứng.
..............
...@..........
..xxx.........
.xxxxx...#....
xxxxxxx.yyy.$.
Thứ tự mà các nhân vật sụp đổ có thể được chọn tự do. Không gian lưu trữ không ổn nhưng dấu vết mới là.
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng!
Thí dụ
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
Một đầu ra có thể:
--(_
/----|/|(o_)
/|/~\---~\\/o)
..."Have*you~mooed~today?"...