Verwenden Sie eine Programmiersprache, die Funktionen unterstützt
is_enough(strArr)
das take, strArrdas ein Array sein wird, das aus den folgenden Elementen besteht:
NDies ist die Anzahl der Tankstellen auf einer Kreisstrecke- und jedes nachfolgende Element wird die Zeichenfolge sein,
g:cin dergist die Gasmenge in Gallonen an dieser Tankstelle undcwird die Menge an Gallonen Gas sein, die benötigt wird, um zur folgenden Tankstelle zu gelangen.
Zum Beispiel strArrkann sein:
["4","3:1","2:2","1:2","0:1"].
Ihr Ziel ist es, den Index der Starttankstelle zurückzugeben, mit dem Sie die gesamte Route einmal umrunden können. Andernfalls geben Sie die Zeichenfolge "unmöglich" zurück .
Für das obige Beispiel gibt es 4 Tankstellen, und Ihr Programm sollte die Zeichenfolge "1" zurückgeben, weil:
Ab Station 1 erhalten Sie 3 Gallonen Benzin und geben 1 für die nächste Station aus.
Dann haben Sie 2 Gallonen + 2 mehr an der nächsten Station und Sie geben 2 aus, so dass Sie 2 Gallonen haben, wenn Sie zur 3. Station kommen.
Sie haben dann 3, aber Sie verbringen 2 damit , zur Endstation zu gelangen.
An der Endstation erhalten Sie 0 Gallonen und geben Ihre letzte Gallone aus, um zu Ihrem Ausgangspunkt zu gelangen.
Das Starten an einer anderen Tankstelle würde es unmöglich machen, die Route zu umgehen, daher lautet die Antwort "1" .
Wenn es mehrere Tankstellen gibt, an denen begonnen werden kann, geben Sie den kleinsten Index (der Tankstelle) zurück. Nwird sein >= 2.
Richtige Beispielausgaben:
Input: ["4","1:1","2:2","1:2","0:1"]
Output: "impossible"
Input: ["4","0:1","2:2","1:2","3:1"]
Output: "4"
Der Gewinner ist derjenige, der den kürzesten Code verwendet, obwohl er lang sein wird.
N+1Elemente in strArr? Dies würde Nüberflüssig machen, falls die Sprache bereits eine Möglichkeit bietet, die Länge des Arrays zu ermitteln, oder? (Es wäre immer noch nützlich für zB C.)
is_enough(9 Zeichen). Drei verwenden einen Namen mit einem Zeichen, und einer benennt die Funktion überhaupt nicht. Könnten Sie bitte klarstellen, was zulässig ist?