Bei 3 Eingabeelementen, einer Liste von Koordinatenpaaren, einer 2D-Zeichenfolge und einer Einzelzeichenfolge wird ausgegeben, ob das Zeichen an jeder Koordinate der 2D-Zeichenfolge dem Einzelzeichen entspricht. Sie können die Eingabe in beliebiger Reihenfolge vornehmen und die Koordinaten können 1-indiziert sein.
Sie können die 2D-Zeichenfolge als 2D-Liste, Linienliste oder 2D-Zeichenfolge verwenden.
Beispiel: (0,0), "#_\n__", "#" -> True
Die Zeichenfolge ist
#_
__
Das Zeichen an der Koordinate (0,0)
(von oben links) ist #
. Dies entspricht dem dritten Eingabeelement #
, sodass Sie True
(oder einen beliebigen wahrheitsgemäßen Wert) ausgeben.
Beispiel: [(0,0), (1,1)], "#_\n_#", "#" -> True
Die Zeichenfolge ist
#_
_#
Die Zeichen an den Koordinaten von (0,0)
und (1,1)
sind beide #
, daher ist die Ausgabe wahr.
Die Ausgabe ist nur wahr, wenn jede Koordinate mit einem Hash übereinstimmt. Nicht jeder Hash muss jedoch eine passende Koordinate haben. Wenn das einzelne Zeichen ( #
in einigen Testfällen) in der 2D-Zeichenfolge nicht vorkommt, ist die Ausgabe immer noch nur falsch.
Sie können davon ausgehen, dass die Koordinaten immer innerhalb der Grenzen der 2D-Zeichenfolge liegen.
Weitere Testfälle: (Ich habe das einzelne Zeichen zur besseren Lesbarkeit an zweiter Stelle gesetzt.)
[(0,0), (2,1), (3,0)], #
#_##
#_##
True
[(0,0), (1,1), (3,0)], #
#_##
#_##
False (1,1 is not a hash)
[(1,1)], a
#a##
#a##
True
[(4, 0), (3, 0), (2, 0), (1, 0), (0, 0), (0, 1), (0, 2), (0, 3), (1, 3), (2, 3), (2, 2), (3, 2), (4, 2), (4, 3)], ' '
####
#
#
True
Beachten Sie, dass im letzten Testfall Leerzeichen als einzelne Zeichenfolge verwendet werden und die Leerzeichen mit Hashes versehen werden.
Verbunden. (Umkehrung dieser Herausforderung)
(row, column)
, im letzten Beispiel jedoch im Format(column, row)
.Antworten:
Dyalog APL , 8 Bytes
Fordert zur Liste der Koordinatenpaare (Zeile, Spalte), dann zum 2D-Array und dann zum Zeichen auf.
[⎕]
Geben Sie die Koordinaten ein und verwenden Sie sie, um die Auswahl zu streuen⎕
Eingabeaufforderung (2D-Array)=
Vergleichen Sie die ausgewählten Elemente mit⎕
Eingabe (das Zeichen)∧/
Überprüfen Sie, ob alle zutreffen (UND-Reduzierung).Testfälle (
⎕IO←0
um Beispiele zu finden, dies ist jedoch nicht erforderlich):Erstes Beispiel
Zweites Beispiel
Drittes Beispiel
Viertes Beispiel
Fünftes Beispiel
quelle
Python, 39 Bytes
Nimmt die Eingaben:
a
Liste der(x, y)
ganzzahligen Koordinatenb
Liste der Zeichenfolgenc
einzelne Zeichenfolgequelle
f=
. Willkommen bei PPCG!JavaScript (ES6), 37 Byte
Nimmt die Eingaben:
a
Array von[x, y]
Ganzzahlkoordinatens
Array von Zeichenfolgenc
einzelne Zeichenfolgequelle
Oktave,
453829 BytesEine Funktion, die ein 2D-Array von Zeichen als
A
und Koordinaten (0-basiert)B
als zweispaltige Matrix von[col row]
und das übereinstimmende Zeichen als verwendetC
. Die beiden Elementkoordinaten (unter Verwendung der Matrixmultiplikation) werden in einen linearen Index konvertiert.Hinweis: Die vorherige Antwort, bei der eine spärliche Matrix verwendet wurde, war falsch.
Andere Mitwirkende:
Stewie Griffin für das Speichern von 5 Bytes unter Hinweis darauf, dass [0 1 0] als falscher Wert angesehen werden kann !!
Luis Mendo für das Speichern von 2 Bytes
~0 == true
und die Benachrichtigung über eine spärliche Matrix.Probieren Sie es online aus
quelle
all
drei Bytes überspringen und speichern.1 1 1
ist wahr und1 0 1
ist in Octave falsch, also sollte es in Ordnung sein. :)true
durch~0
zu speichern 2 BytesMathematica, 28 Bytes
1-indiziert. Aufgrund der Struktur von Arrays in Mathematica müssen die Eingabekoordinaten umgekehrt werden (dh
(row, column)
)Verwendungszweck
quelle
Haskell, 27 Bytes
Anwendungsbeispiel:
( ["#_##","#_##"] ! '#' ) [(0,0), (2,1), (3,0)]
->True
.quelle
Gelee , 10 Bytes
Dies funktioniert nur als vollständiges Programm. Die Eingabereihenfolge ist Indizes, String-Array, Singleton-String.
Probieren Sie es online aus!
Wie es funktioniert
quelle
Perl 6 ,
4140 BytesErwartet die 2D-Zeichenfolge als 2D-Liste.
Danke an b2gills für -1 Byte.
quelle
$_
stattdessen\c
verwenden.map:{…}
, können Sie ein Byte speichern.map: {…}
. Das ist nützlich zu wissen. Es ist auch eine Schande, dass das Präfix||
noch nicht implementiert ist, es könnte das innere Lambda einfach machenn eq h[||$_]
...C #,
8077 BytesDank pinkfloydx33 wurden 3 Bytes gespeichert
a sind die Koordinatenpaare, b ist die Liste der Linien und c ist die Einzelzeichenfolge.
quelle
false
mit1<0
undtrue
mit1>0
und sparen 3 Bytes.Haskell,
7263 BytesEingabe von
c [(0,0), (1,0), (3,0)] "#_##\n#_##" '#'
AusgabenFalse
Eingang
c [(4, 0), (3, 0), (2, 0), (1, 0), (0, 0), (0, 1), (0, 2), (0, 3), (1, 3), (2, 3), (2, 2), (3, 2), (4, 2), (4, 3)] " \n ####\n # \n # " ' '
Ausgabe
True
UnGolfed
quelle
c[]_ _=1<2;c((f,s):t)m n|n/=lines m!!s!!f=1>2|1>0=c t m n
if n/=lines m!!s!!f then False else c t m n
durch ersetzt werdenn/=lines m!!s!!f&&c t m n
.You may take the 2D string as a 2D list, a list of lines, or a 2D string.
löschenlines
und direkt eine Liste mit Zeilen als Eingabe verwenden.Scala, 68 Bytes
quelle
Clojure, 39 Bytes
Beispiel (Zeichenfolgeneingabe ist ein vec von vec von Zeichen):
quelle