Tor
Da die World Series vor der Tür steht, brauche ich ein Programm, mit dem ich die Ergebnisse der Box ablesen und mir sagen kann, um was es sich handelt. Dies ist etwas kompliziert, da Baseball eine ungerade Methode verwendet, um die Punktzahl aufzuzeichnen. Sie schreiben die Punktzahl des Teams für das Inning erst auf, wenn sie einen Lauf erzielt haben (und immer noch fahren) oder ihren Angriff beendet haben. Somit bedeutet eine 0 auf der Anzeigetafel immer einen beendeten Angriff. Beispielsweise:
Example A:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| 0| | | |
Example B:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| 1| | | |
Example C:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| | | | |
#Them is the Away Team, Us is the Home Team (who are the guys you root for)
- Beispiel A: Wir wissen, dass wir am oberen Ende des siebten Platzes sind, weil wir im unteren Bereich des sechsten Platzes eine aufgezeichnete 0 haben und der obere Bereich des siebten Platzes leer ist.
- Beispiel B: Es kann entweder das untere Ende des sechsten oder das obere Ende des siebten sein.
- Beispiel C: Es kann entweder das obere oder das untere Ende des sechsten sein.
Ihre Aufgabe ist es, die Innings zurückzugeben, die es sein könnten.
Eingang
Zwei Listen nicht negativer Ganzzahlen. Es wird angenommen, dass die Listen gezackt sind und die Liste der Auswärtsmannschaft entweder dieselbe Größe oder ein Element größer ist als die der Heimmannschaft. Sie können die Ergebnisse in beliebiger Reihenfolge angeben, in Ihrer Antwort jedoch angeben, wenn Sie nicht die Standardeinstellung verwenden. Dh, Auswärtsteam, dann Heimmannschaft (Standardeinstellung) oder Heimmannschaft, dann Auswärtsteam (umgekehrt). Sie können auch mit Dummy-Daten aufgefüllt werden, geben Sie dies in Ihrer Antwort an.
Ausgabe
Eine Zeichenfolge oder etwas Äquivalentes, das die Inning-Nummer identifiziert und angibt, ob es sich um die obere oder die untere handelt. Zum Beispiel 7B 8T
, B7 T8
, ['7B','8T']
sind alle in Ordnung. Wenn es zwei Antworten gibt, müssen Sie beide ausgeben. Das Format ist allerdings ziemlich flexibel.
Regeln
- Die Eingabe ist immer gültig
- Spiele können in unbestimmte zusätzliche Innings gehen. Ihr Programm sollte in der Lage sein, bis zu 255 Innings zu unterstützen.
- Standardlücken sind verboten
- Das ist Code-Golf, also gewinnt der kürzeste Code
Testfälle
#Input:
[[],
[]]
#Output: 1T
#Input:
[[0],
[]]
#Output: 1B
#Input:
[[0,0,0,1],
[0,0,0,0]]
#Output: 5T
#Input:
[[0,0,0,1],
[0,0,0,1]]
#Output: 4B, 5T
#Input:
[[0,0,0,1,0,0,1,0,0,1],
[0,0,0,0,1,0,0,1,0,1]]
#Output: 10B, 11T
#Input:
[[0,0,0,1],
[0,0,0]]
#Output: 4T, 4B
#Input:
[[0,0,0,0],
[0,0,0]]
#Output: 4B
Antworten:
C (gcc) , 50 Bytes
Übernimmt die Eingabe als Zeiger auf eine verschachtelte Liste (dh
{them#1, us#1, them#2,...}
).Gibt eine Option über die Änderung und die andere über den Rückgabewert zurück.
Negative Werte geben den unteren Rand des Innings an, positive Werte den oberen Rand des Innings. Nullen sind "leer". Der absolute Wert der Ausgabe ist die Nummer des Innings. Gibt also an,
-4,5
dass die Möglichkeiten über der fünften und unter der vierten liegen, und1,0
gibt an, dass die einzige Möglichkeit über der ersten liegt.Der Rückgabewert des Makros kann verwendet werden, um zu bestimmen, ob ein oder zwei mögliche Innings vorhanden sind. Der Rückgabewert ist,
0
wenn es kein anderes Inning gibt. Ansonsten ist es die Nummer des Innings.Null Byte Quellcode. Verwenden Sie Folgendes als Präprozessor-Flag:
Probieren Sie es online!
Degolf
quelle
Perl 6 ,
52 4845 Bytes-3 Bytes dank einiger Umstrukturierungen von nwellnhof!
Probieren Sie es online!
Anonymer Codeblock, der die Eingabe als zwei Listen oben und unten annimmt. Die Ausgabe ist eine Liste von Tupeln, wobei das erste Element die Inning-Nummer und das zweite Element True oder False ist, entsprechend Bottom oder Top.
Erläuterung:
quelle
R ,
10396 BytesProbieren Sie es online!
@digEmAll 7 Bytes gespeichert!
Nimmt zwei
Listenvektorenals Eingabe und gibt eine oder zwei Ganzzahlen aus, die die möglichen Innings darstellen. Positive Ganzzahlen sind die Oberseite des Innings und negative Ganzzahlen sind die Unterseite des Innings.In R sind positive ganze Zahlen wahr, daher kann ich den Längenunterschied als erstes Argument für verwenden
if()
.quelle
[[
alsif
Ersatz, da Sie[
in Ihrem Code verwenden.<
und versucht^
. Ich denke, es[
war das Beispiel, an das ich mich erinnere.'if'
(und entfernen{}
und nachf=
draußen verschieben): 96 BytesJavaScript (Node.js) , 75 Byte
Probieren Sie es online!
quelle
Jelly , 11 Bytes
Probieren Sie es online!
Erstes Element: 0-basierter Index der Spalte.
Zweites Element:
0
für oben,1
für unten.Die Ausgabe ist eine Liste von ein oder zwei Paaren, wie oben angegeben (zur besseren Darstellung schön gemacht). Die Ausgabe erfolgt in umgekehrter Reihenfolge.
quelle
Python 2 ,
135129126125123119 ByteProbieren Sie es online!
-1 mit Dank an @ovs
-4 Nochmals vielen Dank an @ovs
quelle
if d else"11BT"[c<1::2]
für -3if d
Ich kann sehen (hätte es nicht verpassen sollen!),else"11BT"[c<1::2]
Komme aber nicht kürzer für mich heraus, es sei denn, ich vermisse etwas.if d
trotzdem einen anderen Weg gefunden, der von deinem inspiriert ist.if d
Sie dies tun können, müssenif b
Sie nichtlen(b)
in Variablen speichern .d
für[d<c]
. Daran kann ich keinen Weg erkennen. Irgendwelche Ideen?Python 2 , 65 Bytes
Probieren Sie es online!
Druckt zwei Zeilen, zuerst die unterste und dann die oberste, als Singleton-Liste. Wenn eine von beiden nicht möglich ist, ist diese Liste leer.
quelle
Sauber ,
8475 BytesProbieren Sie es online!
Definiert die Funktion
@ :: [Int] [Int] -> (Int, Int)
und einige Helfer.Gibt eine Ausgabe in der Form aus,
(Top, Bottom)
in der eine Null eine Null-Möglichkeit bedeutet.quelle