Eine verkürzte Zeichenfolge sieht folgendermaßen aus:
T AnE eOf ifi ing
h s x l A k e r
isI amp Sna dSt
Deine Aufgabe
Nehmen Sie eine Zeichenfolge s
und eine Größe n
, und geben Sie dann die verschlüsselte Zeichenfolge aus. Die Eingaben ThisIsAnExampleOfaSnakifiedString
und 3
würden das obige Beispiel ergeben.
Spezifikationen
s
Enthält nur ASCII-Zeichen zwischen den Codepunkten 33 und 126 (keine Leerzeichen oder Zeilenumbrüche).s
wird zwischen 1 und 100 Zeichen lang sein.n
ist eine Ganzzahl, die die Größe jedes Ausgangsstringsegments darstellt. Jede Zeichenzeile (hoch / runter oder links / rechts), aus der die Kurven in der "Schlange" bestehen, istn
Zeichen lang. Beispiele finden Sie in den Testfällen.n
wird zwischen 3 und 10 inklusive sein.- Die Ausgabezeichenfolge beginnt immer nach unten zu zeigen.
- Nachgestellte Leerzeichen in jeder Zeile sind zulässig.
- Das Nachziehen von Zeilenumbrüchen am Ende der Ausgabe ist ebenfalls zulässig.
- Führende Leerzeichen sind nicht erlaubt.
- Code-Golf bedeutet kürzester Code in Bytes gewinnt.
Testfälle
a 3
a
----------
Hello,World! 3
H Wor
e , l
llo d!
----------
ProgrammingPuzzlesAndCodeGolf 4
P ngPu Code
r i z d G
o m z n o
gram lesA lf
----------
IHopeYourProgramWorksForInputStringsWhichAre100CharactersLongBecauseThisTestCaseWillFailIfItDoesNot. 5
I gramW tStri 100Ch gBeca CaseW DoesN
H o o u n e a n u t i t o
o r r p g r r o s s l I t
p P k n s A a L e e l f .
eYour sForI Which cters ThisT FailI
----------
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 10
! <=>?@ABCDE `abcdefghi
" ; F _ j
# : G ^ k
$ 9 H ] l
% 8 I \ m
& 7 J [ n
' 6 K Z o ~
( 5 L Y p }
) 4 M X q |
*+,-./0123 NOPQRSTUVW rstuvwxyz{
code-golf
string
ascii-art
code-golf
code-golf
string
balanced-string
decision-problem
code-golf
string
geometry
grid
code-golf
tips
lisp
code-golf
quine
tips
king-of-the-hill
code-challenge
math
code-golf
string
palindrome
math
fastest-code
code-golf
string
counting
code-golf
code-golf
internet
code-golf
quine
source-layout
hello-world
code-golf
math
number
sequence
arithmetic
code-golf
ascii-art
grid
code-golf
number
grid
code-golf
string
crossword
code-golf
code-golf
ascii-art
grid
counting
code-golf
code-golf
math
sequence
arithmetic
number-theory
code-golf
code-golf
graphical-output
geometry
random
code-golf
ascii-art
grid
counting
code-golf
string
ascii-art
code-challenge
test-battery
code-golf
string
code-golf
ascii-art
kolmogorov-complexity
code-golf
interpreter
code-golf
math
sequence
code-golf
math
primes
set-partitions
code-golf
user81655
quelle
quelle
Antworten:
Pyth,
4845444342 BytesProbieren Sie es online aus.
Bei diesem Ansatz wird derselbe nachgestellte Whitespace-Missbrauch wie bei der Ruby-Antwort ausgeführt.
quelle
Rubin, 87 Bytes
Einige geringfügige Verstöße gegen die Regel
Trailing spaces on each line are allowed.
Jede Ausgabezeile besteht ausw
Zeichen und einer neuen Zeile, wobeiw
die Länge der ursprünglichen Zeichenfolge ausreicht, um die gesamte Eingabe zu speichern . Daher gibt es ziemlich viele unnötige Leerzeichen rechts für großn
.Ungolfed im Testprogramm
quelle
JavaScript (ES6), 143 Byte
Wobei
\n
eine wörtliche Newline darstellt. Ungolfed:quelle
Pyth,
857459 BytesKl@Q0J0=Y*]d-+*@Q1K@Q1 1FNr1@Q1=XY-+*KNN1b;VK=XYJ@@Q0N=+J@[+K1 1-_K1 1).&3/N-@Q1 1;sY
=G@Q1=H@Q0KlHJ0=Y*]dt+*GKGFNr1G=XYt+*KNNb;VK=XYJ@HN=+J@[hK1t_K1).&3/NtG;sY
Vielen Dank an @FryAmTheEggman, der mir sehr geholfen hat!
Ich habe so viel Golf gespielt, wie ich konnte. Probieren Sie es hier aus! Aus irgendeinem Grund machen Zeilenumbrüche die Ausgabe seltsam. Vielleicht möchten Sie einen Blick auf die Ausgabe auf der ganzen Seite werfen
Erläuterung
Atme eine Sekunde und konzentriere dich. Dies kann wie bei fast jedem "klassischen" Algorithmus in drei Abschnitte unterteilt werden.
Der erste Abschnitt
Hier werden Variablen initialisiert. Es kann in zwei Teile geteilt werden:
der zweite Teil :
Der zweite Abschnitt
Es enthält die eigentliche Logik.
Der dritte Abschnitt
Dies ist der Ausgabeteil. Nicht wirklich interessant ...
BONUS
Ich habe das Pyth-Programm aus diesem Python-Skript geschrieben.
quelle
JavaScript (ES6), 122 Byte
Gleicher Algorithmus wie die Antwort von @ LevelRiverSt.
quelle
C 138 Bytes
Dies verwendet ANSI-Escapezeichen. Funktioniert im Linux-Terminal.
Ungolfed:
quelle
JavaScript (ES6), 131
Algorithmus: Abbildung der Position
x,y
in der Ausgabe auf den Index in der Eingabezeichenfolge, in etwa wie diese (nicht verwandte) Antwort.Ich habe mir von @LevelRiverSt den Trick geliehen, die horizontale Breite gleich der Eingabelänge zu halten.
Weniger golfen
Dies war der erste Arbeitsentwurf vor dem Golfen
Prüfung
quelle
Pyth, 122 Bytes
Ich habe eine Formel erstellt, um die x, y-Positionen jedes Zeichens basierend auf der Segmentgröße / dem Modulo zu berechnen, aber sie wurden größer als erwartet: c
Erläuterung:
Hier testen
Für die mathematischen Formeln habe ich mod verwendet, um 0/1-Flags zu generieren, und dann mit einem Faktor multipliziert, der auf der Eingabe basiert
n
, und die Tabelle mit jedem Schritt auf dem Textausschnitt hinzugefügtCode-Snippet anzeigen
quelle
PHP,
127126124120119118117110106 BytesVerwendet die ISO-8859-1-Codierung.
Laufen Sie wie folgt (
-d
nur aus ästhetischen Gründen hinzugefügt):Ungolfed:
Optimierungen
<
anstelle von ein Byte gespeichert!=
0
zuerst auf gesetzt wurde, sodass ich keine weitere voranstellen muss0
(falls die erste Ausgabe in einer Zeile a war0
), was die Wahrheit ergibt00
.$o[$y]
==
die Richtung mit 1 zu vergleichen, um die x-Koordinate zu ändernnull
umint
für String - Offset, als String versetzt ist sowieso int gegossen$c
quelle