Gestern habe ich mein Sandwich auf dem Tisch liegen lassen. Als ich heute aufgestanden bin, war da ein Happen drin ... War es meins? Ich kann mich nicht erinnern ...
Problem:
Nehmen Sie eine Darstellung des Sandwichs und meines Bissmusters und sagen Sie mir, ob es mein Biss war oder nicht.
Beispiele:
Beispiel 1:
Mein Bissmuster:
..
.
Sandwich:
#####
.####
..###
Ausgabe:
truthy
Beispiel 2:
Mein Bissmuster:
..
..
Sandwich:
...##
..###
.####
Ausgabe:
falsy
Beispiel 3:
Wenn mindestens 1 Umdrehung als wahr gilt, ist die Ausgabe wahr.
Mein Bissmuster:
.
.
.
Sandwich:
##.
#.#
.##
Ausgabe:
Zwei mögliche Rotationen (beißen in der nordöstlichen oder südwestlichen Ecke).
truthy
Einige gültige Bisse:
..
.
...
.
.
.
.
.
..
. .
..
..
.
. .
Einige ungültige Bisse:
..
...
.
..
.
.
Regeln:
Meine Bissmusterorientierung ist immer für das Beißen der Nordwestecke. Und muss gedreht werden, um andere Ecken zu beißen;
Es gibt immer 1 und nur 1 Bissen im Sandwich;
Der Biss im Sandwich kann in jedem der 4 Cornes sein (entsprechend gedreht);
Bissmuster sind entlang der Hauptdiagonale immer symmetrisch.
Bissmuster werden immer mindestens 1 breit und nicht leer sein;
Das Sandwich ist immer ein Rechteck mit einer Breite und Höhe, die der Breite meines Bissmusters entsprechen oder größer sind.
In Ihrer Eingabe können Sie 2 verschiedene Zeichen ohne Leerzeichen auswählen, um das Sandwich und den Biss darzustellen.
Leerzeichen im Bissmuster bedeuten, dass mein Biss diesen Teil des Sandwichs nicht berührt.
quelle
..
,..
?Antworten:
Ruby ,
103 Bytes101 BytesProbieren Sie es online!
2 Bytes gespart, indem die Zuweisung zur ersten Verwendung von a verschoben wurde. Anscheinend ist Ruby klug genug, um die Kommas in der Array-Definition und die Kommas, die durch die gleichzeitige Zuweisung von Variablen entstehen würden, nicht zu verwechseln (zumindest in diesem Fall: D).
quelle
Python 2 , 134 Bytes
Nimmt die Eingabe als zwei Listen von Zeichenfolgen (eine für jede Zeile). Setzt kein nachgestelltes Leerzeichen in den Zeilen voraus.
Probieren Sie es online!
Beispiele:
quelle
Python 2, 173 Bytes
Probieren Sie es online aus
Nimmt die Eingabe als zwei Listen mit Listen von Zeichen auf.
Zuerst - Sandwich
Second - Bite
Zuerst wird das Bite-Array auf die Größe eines Sandwich-Arrays erweitert:
[y<'.'and'#'or y for y in x]
ersetzt alle Leerzeichen bis#
(L(S[0])-L(x)),b+[[]]*(L(S)-L(b))
um die Anzahl der fehlenden Elemente berechnenDann vergleicht es alle 4 Umdrehungen dieses "verlängerten" Bisses mit dem Sandwich:
Lambda R wird verwendet, um Listen horizontal zu spiegeln
Im verknüpften Beispiel ist sandwich:
Und beißen ist:
quelle
R=Lambda:map...
und nichtR=map...
B=[[y<'.'and'#'or y for y in x]+['#']*(L(S[0])-L(x))for x in b+[[]]*(L(S)-L(b))]
für -4R=[x[::-1]for x in B]
für -4 auch. Verwenden Sie im Allgemeinen keine Karte mit Lambda-Funktion