Sử dụng bất kỳ ngôn ngữ lập trình nào hỗ trợ các chức năng, có chức năng
is_enough(strArr)
mà mất strArr
mà sẽ là một một mảng gồm các yếu tố sau:
N
đó sẽ là số lượng trạm xăng trong một tuyến đường tròn- và mỗi phần tử tiếp theo sẽ là chuỗi
g:c
trong đóg
là lượng khí tính bằng gallon tại trạm xăng đó vàc
sẽ là lượng gallon khí cần thiết để đến trạm xăng sau.
Ví dụ strArr
có thể là:
["4","3:1","2:2","1:2","0:1"].
Mục tiêu của bạn là trả về chỉ số của trạm xăng bắt đầu cho phép bạn đi vòng quanh toàn bộ tuyến đường một lần, nếu không sẽ trả lại chuỗi "không thể" .
Đối với ví dụ trên có 4 trạm xăng và chương trình của bạn sẽ trả về chuỗi "1" vì:
Bắt đầu từ trạm 1, bạn nhận được 3 gallon xăng và dành 1 để đến trạm tiếp theo.
Sau đó, bạn có thêm 2 gallon + 2 thêm ở trạm tiếp theo và bạn dành 2 để bạn có 2 gallon khi bạn đến trạm thứ 3.
Sau đó, bạn có 3 nhưng bạn dành 2 để đến trạm cuối cùng,
Tại trạm cuối cùng, bạn nhận được 0 gallon và bạn dành gallon cuối cùng để đến điểm xuất phát.
Bắt đầu tại bất kỳ trạm xăng nào khác sẽ khiến việc đi lại quanh tuyến không thể thực hiện được, vì vậy câu trả lời là "1" .
Nếu có nhiều trạm xăng có thể bắt đầu tại, hãy trả về chỉ số nhỏ nhất (của trạm xăng). N
sẽ >= 2
.
Kết quả đầu ra mẫu chính xác:
Input: ["4","1:1","2:2","1:2","0:1"]
Output: "impossible"
Input: ["4","0:1","2:2","1:2","3:1"]
Output: "4"
Người chiến thắng sẽ là người sử dụng mã ngắn nhất mặc dù nó sẽ dài.
N+1
các yếu tố chính xác trong strArr
? Điều này sẽ làm cho N
dư thừa trong trường hợp ngôn ngữ đã cung cấp một cách để có được độ dài của mảng, phải không? (tuy nhiên nó vẫn hữu ích cho ví dụ C.)
is_enough
(9 ký tự); ba đang sử dụng một tên char duy nhất và một tên không có chức năng nào cả. Bạn có thể vui lòng làm rõ những gì được cho phép?