Finde X
Ich wurde von mathematischen Fragen inspiriert, bei denen man gefragt wird, ob man für eine bestimmte Form "X finden" möchte. Ursprünglich bestand die Herausforderung darin, die x- und y-Position des Zeichens 'x' in einer Zeichenfolge zu drucken. Aber ich nahm an, das wäre zu einfach. Also überlegte ich, in welchem Kontext sie sich normalerweise befanden, und entschied, die Länge einer Linie neben dem x als angemessen zu betrachten.
Bei einer Zeichenfolgeeingabe, die ein Diagramm aus ASCII-Zeilen sowie ein einzelnes "x" und möglicherweise Junk-Zeichen enthält, geben Sie die Länge der einzigen Zeile aus, an die sich ein "x" direkt anschließt.
Beispiele
Eingang:
|
|
|x
|
|
Ausgang:
5
Eingang:
|\
| \x
| \
|___\
Ausgabe:
4
Eingang:
Diagram of a Wobbly Line:
IRRELEVANTTEXT____
____ ____/
\___/ X ;)
x
Ausgabe:
3
Eingang:
______________
/ ____________ \
|/ __________ \|
||/ ________ \||
|||/ ______ \|||
||||/ \||||
|||||/ x |||||
|||||\_____/||||
||||\_______/|||
|||\_________/||
||\___________/|
\_____________/
Ausgabe:
5
Anmerkungen
- Die gültigen Zeilenzeichen sind
\/_|
\
verbindet oben links und unten rechts von sich./
verbindet oben rechts und unten links von sich._
verbindet links und rechts von sich|
verbindet die Ober- und Unterseite von sich- Eine Linie ist immer gerade und besteht nur aus einem der n-mal wiederholten Linienzeichen.
- Das x wird immer klein geschrieben und es wird immer das einzige im Diagramm sein.
- Adjecent bezieht sich darauf, dass das x genau ein Zeichen über, unter oder neben dem Zeichen ist.
- Das x steht immer neben genau einer Zeile.
- Tabulatoren werden niemals in der Eingabe angezeigt.
- Die Eingabe und Ausgabe kann in jedem akzeptablen Format erfolgen.
- Dies ist Code Golf, also gewinnt der kürzeste Code!
- HABE SPASS. TU ES. VIEL SPASS.
@
den Stresstest-Antworten ähnelt .Antworten:
JavaScript (ES6),
165155 BytesBEARBEITEN: Inline x und w , um weitere Bytes zu sparen.
Golf (setzt voraus, dass die Eingabe mit Leerzeichen aufgefüllt ist, um ein Rechteck zu erstellen )
Erweitert
Prüfung
Beispielausgabe (wenn Sie diese in der Google Chrome Developer Tools-Konsole ausführen)
quelle
Python 3,
428408385378 BytesArbeiten, hat aber eine Menge Potenzial zum Golfen. Ich bin ein bisschen verrostet.
Angenommen, die Eingabe wird mit Leerzeichen aufgefüllt, um ein Rechteck zu erstellen.
EDIT: Danke an @Artyer für die 23-Byte-Einsparung!
EDIT2: Wow, ich habe die Einsparungen von 6 Byte komplett verpasst. 1 weitere gespart, indem die Seiten eines Equals Checks getauscht wurden.
Erweiterte Version mit Erläuterung:
quelle
<!-- language-all: lang-py -->
Syntaxhervorhebung hinzufügen .*i,=map(list,inputtt.split('\n'))
(*i,
machti
eine Liste statt einer Karte) (-6 mehr Bytes)Lua, 480 Bytes
Lua, als die ausführliche Sprache, die sie ist, schlägt die Python-Antwort nicht. Muss es aber nicht.
Ähnlich wie meine Referenzimplementierung, aber es wird tatsächlich auf das Golfen eingegangen, und einige Dinge werden etwas geschickter als zuvor ausgeführt. Trotzdem könnte man wahrscheinlich ein bisschen besser golfen.
Mit Kommentaren.
quelle
JavaScript (ES6), 175
Angenommen, die Eingabe wird mit Leerzeichen aufgefüllt, um ein Rechteck zu erstellen.
Weniger golfen
Test - Punkte anstelle von Leerzeichen für Klarheit
quelle