Trong các cuộc thi thể thao, điều thường xảy ra là người chiến thắng được trình bày trên bục vinh quang, với người đứng thứ nhất ở giữa cao nhất, người thứ hai ở độ cao giữa bên trái và người thứ ba ở mức thấp nhất và rẽ phải. Chúng tôi sẽ tạo lại điều đó ở đây với một số điều chỉnh đặc biệt.
Các bục được trình bày dưới đây:
@---@
| @ |
@---@| | |
| @ || | |
| | || | |@---@
| | || | || @ |
Điều này sẽ tạo cơ sở cho thách thức này. Bước tiếp theo là làm cho bục đủ rộng để phù hợp với mọi người (chuỗi ASCII có thể in) nằm trên chúng. Tuy nhiên, chúng tôi muốn đảm bảo vẻ đẹp thẩm mỹ (vì đây là một cơ hội hình ảnh tuyệt vời), vì vậy mỗi bục cần phải có cùng chiều rộng và chiều rộng phải là số lẻ. Ngoài ra, mọi người sẽ (rõ ràng) muốn đứng ở trung tâm của bục giảng, vì vậy các chuỗi phải được tập trung tốt nhất có thể. (Bạn có thể căn chỉnh sang trái hoặc phải và không cần nhất quán.) Các bục trên là kích thước tối thiểu và được coi là 3
rộng.
Ví dụ: được đưa ra đầu vào ["Tom", "Ann", "Sue"]
tương ứng vị trí thứ nhất, thứ hai và thứ ba, xuất ra các bục sau:
Tom
@---@
Ann | @ |
@---@| | |
| @ || | | Sue
| | || | |@---@
| | || | || @ |
Tuy nhiên, nếu chúng ta có Anne
thay vì Ann
, chúng ta sẽ cần tăng kích thước tiếp theo 5
và căn giữa các chuỗi càng tốt càng tốt. Ở đây, tôi đang căn chỉnh để chữ "phụ" Anne
nằm ở bên trái của trung tâm, nhưng bạn có thể chọn bên nào để căn chỉnh.
Tom
@-----@
Anne | @ |
@-----@| | |
| @ || | | Sue
| | || | |@-----@
| | || | || @ |
Hãy để một số tên dài hơn. Thế còn ["William", "Brad", "Eugene"]
:
William
@-------@
Brad | @ |
@-------@| | |
| @ || | | Eugene
| | || | |@-------@
| | || | || @ |
Ở đây chúng ta có thể thấy rằng Brad
có rất nhiều khoảng trắng, Eugene
ít hơn và William
phù hợp vừa phải.
Đối với trường hợp thử nghiệm dài hơn, làm thế nào về ["A", "BC", "DEFGHIJKLMNOPQRSTUVWXYZ"]
:
A
@-----------------------@
BC | @ |
@-----------------------@| | |
| @ || | | DEFGHIJKLMNOPQRSTUVWXYZ
| | || | |@-----------------------@
| | || | || @ |
Cuối cùng, chúng ta có đầu vào nhỏ nhất có thể, đại loại như ["A", "B", "C"]
:
A
@---@
B | @ |
@---@| | |
| @ || | | C
| | || | |@---@
| | || | || @ |
- Đầu vào và đầu ra có thể được đưa ra bởi bất kỳ phương pháp thuận tiện .
- Đầu vào được đảm bảo không trống (nghĩa là bạn sẽ không bao giờ nhận được
""
tên). - Bạn có thể in nó sang STDOUT hoặc trả lại dưới dạng kết quả chức năng.
- Một chương trình đầy đủ hoặc một chức năng được chấp nhận.
- Bất kỳ số lượng khoảng trắng ngoại lai nào cũng được chấp nhận, miễn là các ký tự xếp hàng một cách thích hợp.
- Sơ hở tiêu chuẩn bị cấm.
- Đây là môn đánh gôn, vì vậy tất cả các quy tắc chơi gôn thông thường đều được áp dụng và mã ngắn nhất (tính bằng byte) sẽ thắng.