Scenariusz
Biorąc pod uwagę wprowadzanie małych liter i spacji ASCII, narysuj spiralę znaków, która śledzi oryginalne wprowadzanie znaków bez spacji.
Zasady
1) Postacie będą spiralnie skierowane w lewo, w lewo, na zewnątrz. Jeśli skręt w lewo nie jest możliwy, idź prosto.
Given: abcdefg
Output:
g
baf
cde
2) Postacie mogą przechodzić w spiralę do poprzednich postaci, o ile zasada nr 1 nie zostanie naruszona. Ponadto, jeśli postać jest spiralna, to ta postać jest pisana wielkimi literami. Gdy postać zostanie zapisana wielkimi literami, pozostanie wielka, niezależnie od tego, ile razy zostanie ponownie użyta.
Given: apples appeal
Output:
PAs
PLe
ea
abcdefghab
?Odpowiedzi:
JavaScript,
225221212 bajtów-9 bajtów dzięki Conorowi O'Brienowi
Pamiętaj, że Twoje przypadki tekstowe są ze sobą sprzeczne. Twój pierwszy przypadek testowy zaczyna się na środku spirali. Drugi przypadek testowy rozpoczyna się w górnej środkowej części spirali. Poszedłem z twoim pierwszym przypadkiem testowym, ponieważ był to pierwszy, który widziałem. Nie edytowałeś swojego pytania od ponad roku, przepraszam za domniemanie.
Pierwszy przypadek testowy:
Drugi przypadek testowy:
Bez dalszego adiuu, oto kod do gry w golfa. Jestem w 100% pewien, że jeśli społeczność to zepsuje, można to znacznie zmniejszyć. Zwraca tablicę multilinii.
Fragment wstępnego oczyszczania (drukuje ciąg konsoli wielowierszowej na konsoli). Proszę zwrócić uwagę na inne w moim przypadku testowym nr 2 i przypadku testowym OP nr 2 (patrz wyżej, jeśli jeszcze tego nie zrobiłeś):
(jeśli ktoś z większym doświadczeniem z fragmentami chce to naprawić w danych HTML, możesz go edytować, muszę iść spać).
Niegolfowane i wyjaśnienie
źródło
a.split("")
jest równoważne z[...a]
;s=>{...;return a;}
jest równoważnes=>eval("...;a")
(i;
jest opcjonalne w wersji mniej golfowej); wszystkie średniki, po których następuje znak,}
są opcjonalneapples appeal
? Rozumiemppa
eas
aLe
, co zdecydowanie nie jest poprawne, ponieważ nie mal
obok niegop
.eppa
apas
lple
s
.