Đây là một cách đơn giản: in biểu đồ Gantt ASCII .
Phạm vi của các nhiệm vụ (thời gian bắt đầu - thời gian kết thúc), in dòng thời gian Gantt dưới dạng -
ký tự cho mỗi thời lượng tác vụ - mỗi tác vụ trong một dòng mới.
Thí dụ
Giả sử phạm vi nhiệm vụ của tôi là 28->35, 34->40, 39->44
, Gantt sẽ trông như thế này:
-------
------
-----
Thông số kỹ thuật
- Bạn có thể viết một chương trình đầy đủ, một chức năng được đặt tên hoặc một chức năng ẩn danh.
- Chương trình / chức năng của bạn sẽ chấp nhận các tác vụ thông qua STDIN hoặc làm đối số .
- Mỗi tác vụ nên được biểu diễn dưới dạng một chuỗi các
start->end
vị trístart
vàend
là số nguyên . Nhiệm vụ được phân tách bằng dấu cách hoặc dấu phẩy. Ngoài ra , bạn có thể lấy nó dưới dạng Tuple of Integers hoặc dưới dạng Mảng / Bộ sưu tập 2 số nguyên. (Ví dụ: trong JavaScript, bạn có thể lấy nó dưới dạng[start,end]
- điều này được cho phép). - Bất kỳ số lượng tác vụ (đối số) không âm nào cũng cần được hỗ trợ.
Để làm cho nó rõ ràng, một đối số duy nhất của bộ sưu tập nhiệm vụ không được phép. Bạn có thể phân tích một đối số chuỗi đơn hoặc hỗ trợ các đối số tác vụ không hoặc nhiều hơn. Trong đó nhiệm vụ là một bộ hoặc một bộ sưu tập kích thước 2.- Bạn chỉ có thể giả sử đầu vào hợp lệ sẽ được đưa ra. Điều đó có nghĩa là, mỗi nhiệm vụ có một thời gian tích cực.
- Giá trị trả về không quan trọng, mã của bạn phải in dòng thời gian trên STDOUT.
- Đầu ra: mỗi tác vụ,
start
khoảng trắng theo sau(end-start)
dấu gạch ngang và a\n
. - Không cần phải nói, các dòng đầu ra nên được sắp xếp tương ứng với thứ tự đầu vào (tác vụ).
- Trailing space trước khi
\n
được phép, nếu điều đó giúp bạn.
Các trường hợp thử nghiệm
Input:
(empty)
Output:
(empty)
Input:
0->7,5->6,3->6
Output:
-------
-
---
Input:
5->20,5->20,2->10,15->19
Output:
---------------
---------------
--------
----
Chiến thắng
- Đây là môn đánh gôn để độ dài mã ít nhất (tính bằng byte) sẽ thắng.
- Theo truyền thống, tie breaker là bài trước.
- "Sơ hở tiêu chuẩn không còn buồn cười".
-----
CHỈNH SỬA
Như nhiều bạn hiểu rằng nó được phép có một đối số bộ sưu tập nhiệm vụ duy nhất và vì không có nhiều khác biệt giữa yêu cầu varargs ban đầu , nên giờ đây được phép có một đối số bộ sưu tập, nếu bạn không muốn sử dụng tùy chọn varargs hoặc trong trường hợp ngôn ngữ của bạn không hỗ trợ varargs.
arguments
trong hàm, nhưng bạn không thể cho rằng đó arguments[0]
là một mảng các tác vụ.
To make it clear...
) không rõ ràng chút nào.