Das Szenario
Zeichnen Sie bei einer Eingabe von ASCII-Kleinbuchstaben und Leerzeichen eine Zeichenspirale, die die ursprüngliche Eingabe von Zeichen ohne Leerzeichen nachzeichnet.
Die Regeln
1) Die Zeichen müssen sich nach außen gegen den Uhrzeigersinn nach links drehen. Wenn eine Linkskurve nicht möglich ist, fahren Sie geradeaus.
Given: abcdefg
Output:
g
baf
cde
2) Die Zeichen können zu vorherigen Zeichen werden, solange Regel 1 nicht verletzt wird. Wenn dieses Zeichen spiralförmig ist, wird dieses Zeichen in Großbuchstaben geschrieben. Sobald ein Zeichen in Großbuchstaben geschrieben ist, bleibt es in Großbuchstaben, unabhängig davon, wie oft es wiederverwendet wird.
Given: apples appeal
Output:
PAs
PLe
ea
abcdefghab
?Antworten:
JavaScript,
225221212 Bytes-9 Bytes dank Conor O'Brien
Bitte beachten Sie, dass Ihre Textfälle miteinander in Konflikt stehen. Ihr erster Testfall beginnt in der Mitte der Spirale. Ihr zweiter Testfall beginnt in der oberen Mitte der Spirale. Ich habe Ihren ersten Testfall durchgeführt, weil es der erste war, den ich gesehen habe. Sie haben Ihre Frage seit über einem Jahr nicht mehr bearbeitet. Entschuldigen Sie die Vermutung.
Erster Testfall:
Zweiter Testfall:
Hier ist ohne weiteres der Golfcode. Ich bin mir zu 100% sicher, dass dies erheblich reduziert werden könnte, wenn die Community dies tut. Dies gibt ein mehrzeiliges Array zurück.
Prettification-Snippet (druckt eine mehrzeilige Zeichenfolge an die Konsole). Bitte beachten Sie die Unterschiede in meinem Testfall Nr. 2 und dem Testfall Nr. 2 von OP (siehe oben, falls Sie dies noch nicht getan haben):
(Wenn jemand mit mehr Erfahrung mit Snippets dies in HTML-Eingaben korrigieren möchte, kann er dies gerne bearbeiten. Ich muss ins Bett gehen.)
Ungolfed und Erklärung
quelle
a.split("")
ist gleichbedeutend mit[...a]
;s=>{...;return a;}
ist äquivalent zus=>eval("...;a")
(und das;
ist optional in der weniger Golfversion); Alle Semikolons gefolgt von einem}
sind optionalapples appeal
? Ich seheppa
eas
aLe
, was definitiv nicht richtig ist, weil es keinl
neben demp
s gibt.eppa
apas
lple
s
.