Cho một ma trận hình chữ nhật của độ cao, vẽ các đường viền của nó.
Bài tập
Hai yếu tố xvà ytrên cùng một mức đường viền nếu floor(x/10) == floor(y/10). Ví dụ, 52và 58ở cùng một mức đường viền, nhưng 58và 64không.
Hành động vẽ các đường viền được định nghĩa như sau: Đối với mọi phần tử e, thay thế nó bằng một chuỗi hai char được chọn như sau:
- ký tự đầu tiên là
" "nếu phần tử bên dướieở cùng mức đường viền vớiehoặc nếu không có phần tử nào ở bên dướievà"_"nếu không - ký tự thứ hai là
" "nếu phần tử ở bên phảieở cùng mức đường viền vớiehoặc không có phần tử nào ở bên phảievà"|"nếu không
Các yếu tố trong các hàng được nối với nhau, sau đó các hàng được nối với nhau bằng các dòng mới.
Thí dụ
Giả sử đầu vào là [[5,20],[3,6]], được hình dung như
5 20
3 6
Trước tiên chúng tôi nhìn vào 5. Vì 3là trên cùng một đường viền như 5, ký tự đầu tiên là " ". Vì 20không ở cùng mức đường viền như 5, ký tự thứ hai là "|".
Bây giờ chúng tôi nhìn vào 20. Vì 6không ở cùng mức đường viền như 20, ký tự đầu tiên là "_". Vì không có yếu tố nào ở bên phải 20, nên ký tự thứ hai là " ".
Bây giờ chúng tôi nhìn vào 3. Vì không có yếu tố nào bên dưới 3, nên ký tự đầu tiên là " ". Vì 6ở cùng cấp độ đường viền với 3, ký tự thứ hai là " ".
Bây giờ chúng tôi nhìn vào 6. Vì không có yếu tố nào bên dưới 6, nên ký tự đầu tiên là " ". Vì không có yếu tố nào ở bên phải 6, nên ký tự thứ hai là " ".
Dựa trên các chuỗi hai char này, chúng tôi thực hiện thay thế để có được [[" |","_ "],[" "," "]]. Kết hợp những thứ này lại với nhau, chúng ta có được một đầu ra của
|_
Quy tắc
- Ma trận đầu vào sẽ luôn là hình chữ nhật và bao gồm các số nguyên dương.
- Không gian lưu trữ hoặc dòng mới có thể ở bất kỳ số lượng nào (bao gồm 0) và không nhất quán theo bất kỳ cách nào.
- Bạn không phải tuân theo cùng một thuật toán miễn là bạn tạo ra kết quả tương tự.
- Chương trình hoặc chức năng của bạn có thể xuất ra một chuỗi phân tách dòng mới, danh sách các chuỗi hoặc tương đương.
- Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte thắng.
Các trường hợp thử nghiệm
input
output
[[1,5,8,9],[3,11,13,8],[7,14,10,9],[4,8,7,6]]
_ _
| |
|_ _|
[[0,10,20,30,40,50,60,70,80,90],[0,0,10,10,20,20,30,30,40,40],[0,0,0,10,10,10,20,20,20,30],[0,0,0,0,10,10,10,10,20,20],[0,0,0,0,0,10,10,10,10,10],[0,0,0,0,0,0,10,10,10,10],[0,0,0,0,0,0,0,10,10,10],[0,0,0,0,0,0,0,0,10,10],[0,0,0,0,0,0,0,0,0,10],[0,0,0,0,0,0,0,0,0,0]]
|_|_|_|_|_|_|_|_|_
|_ |_ _|_ _|_ _
|_ |_ _ |_
|_ |_ _
|_
|_
|_
|_
|_
[[5,5,5,5,5,5,5,5,5,5,5],[5,10,10,10,10,10,10,10,10,10,5],[5,10,15,15,15,15,15,15,15,10,5],[5,10,15,20,20,20,20,20,15,10,5],[5,10,15,20,25,25,25,20,15,10,5],[5,10,15,20,25,30,25,20,15,10,5],[5,10,15,20,25,25,25,20,15,10,5],[5,10,15,20,20,20,20,20,15,10,5],[5,10,15,15,15,15,15,15,15,10,5],[5,10,10,10,10,10,10,10,10,10,5],[5,5,5,5,5,5,5,5,5,5,5]]
_ _ _ _ _ _ _ _ _
| |
| _ _ _ _ _ |
| | | |
| | _ | |
| | |_| | |
| | | |
| |_ _ _ _ _| |
| |
|_ _ _ _ _ _ _ _ _|
[[35,32,29,26,25,25,25,26,29,32,35],[32,28,25,22,20,20,20,22,25,28,32],[29,25,21,18,15,15,15,18,21,25,29],[26,22,18,14,11,10,11,14,18,22,26],[25,20,15,11,7,5,7,11,15,20,25],[25,20,15,10,5,0,5,10,15,20,25],[25,20,15,11,7,5,7,11,15,20,25],[26,22,18,14,11,10,11,14,18,22,26],[29,25,21,18,15,15,15,18,21,25,29],[32,28,25,22,20,20,20,22,25,28,32],[35,32,29,26,25,25,25,26,29,32,35]]
_| |_
_| _ _ _ _ _ |_
_| |_
| _ _ _ |
| | | |
| | | |
| |_ _ _| |
|_ _|
_ |_ _ _ _ _| _
|_ _|
| |