(Zainspirowany tym wyzwaniem )
W oryginalnym wyzwaniu miałeś zrobić poziomy zamek, jednak patrząc na moją bluzę, mój zamek jest znacznie bardziej pionowy (i trochę zepsuty): P
Wejście
Otrzymasz pojedynczy ciąg ( s
) i parę liczb całkowitych ( a
i b
) w dowolnym formacie. Gdzie:
a < (length-of-s / 2)
b <= ((length-of-s / 2) - (a + 1)) / 6
Wyjście i ocena
Twój program może być pełnym programem lub funkcją, która generuje pojedynczy ciąg znaków z poprawnym formatowaniem lub tablicą (jeden element w wierszu), którą wybierzesz. Wiodące i końcowe spacje i znaki nowej linii są opcjonalne, o ile znaki wyjściowe są ustawione w jednej linii. na przykład.
["f r"],["u e"],["l p"],["l p"],["y i"],[" o z "],[" p n "],[" e "]
lub
"f r\nu e\nl p\nl p\ny i\n o z \n p n \n e "
są akceptowalnymi wyjściami dla przypadku testowego 1
Standardowe luki są zabronione, a najkrótszy kod w bajtach wygrywa. Każda odpowiedź bez wyjaśnienia nie będzie w stanie wygrać.
Wyjaśnienie
Aby utworzyć zamek błyskawiczny, musisz najpierw usunąć wszelkie białe znaki lub znaki nowej linii z łańcucha. A następnie złóż go tak na pół (więcej w przypadku testowym 1)
abcde fgh ij klmnopqr
staje się dwoma ciągami poniżej, zauważ, że druga połowa jest odwrócona.
abcdefghi
i rqponmlkj
Następnie, zaczynając od początku każdego łańcucha, umieszczamy ten sam indeksowany znak z każdego podłańcucha w jednym wierszu z odstępami określonymi w następujący sposób:
[0] a r -- (a-3) five spaces
[1] b q -- (a-2) three spaces
[2] c p -- (a-1) one space
[3] d -- (a)
[4] o
[5] e
[6] n
etc...
To stanowi podstawę naszego zamka błyskawicznego. Teraz liczby całkowite a
i b
.
a
jest lokalizacja naszego zip. Aby ustalić, gdzie znajduje się zamek błyskawiczny, używamy indeksu naszych linii wyjściowych jako punktu zamknięcia naszego suwaka. np. nawias kwadratowy [3]
w moim powyższym przykładzie to miejsce, w którym znajduje się zamek błyskawiczny.
Zanim nasz zamek błyskawiczny dobiegnie końca, powyższy zamek błyskawiczny musi pozostać w odstępie pięciu pól, aż osiągnie miejsce, w a-2
którym zamyka się 3 pola i a-1
gdzie zamyka się 1 pole. Żeby było jasne, w powyższym przykładzie a = 3
(indeksowane 0)
b
to liczba dziur w moim suwaku. Aby utworzyć dziurę w zamku, ponownie rozdzielamy sznurek z pewnymi odstępami.
Począwszy od wskaźnika na przykład dziury jak h
możemy zwiększyć odstęp h-1
do jednego miejsca, h
do 3 miejsc i h+1
z powrotem do jednej przestrzeni, pozostawiając h-2
i h+2
za pomocą jednego znaku w każdym wierszu, ponieważ są one liczone jako część otworu.
Po suwaku i między każdą dziurką musi znajdować się przerwa jednego znaku, aby nasz zamek wyglądał w pełni połączony między dziurami.
Możesz wybrać indeksy otworów, ale wszystkie muszą znajdować się w „zamkniętej” części zamka błyskawicznego.
Again using 'abcdefghi' and 'rqponmlkj'
[0] a r -- (open)
[1] b q -- (closing)
[2] c p -- (closing)
[3] d -- zip
[4] o -- gap
[5] e -- start of hole (h-2)
[6] n f -- one space (h-1)
[7] m g -- three spaces (hole h)
[8] l h -- one space (h+1)
[9] k -- end of hole (h+2)
[10] i -- gap
[11] j
Mam nadzieję, że wszystko ma sens, jeśli nie spytać. W oczekiwaniu na pytania możesz zauważyć, że znak p
w moim drugim przykładzie jest obecny w drugim podciągu, jednak pojawia się na początku swojej linii, jest to zamierzone, musisz postępować zgodnie z sekwencją 1-2-1-2- 1-2, biorąc postać z każdej połowy po kolei, niezależnie od jej pozycji na wyjściu.
Przypadki testowe
"fully open zipper", 7, 0 | "fully closed zipper", 0, 0
fullyope reppizn | fullyclos reppizde
|
f r *Note: i particularly like this | f
u e example as it shows the reversing | r
l p of the second half of the string | u
l p causes the words to wrap from top | e
y i left to the bottom and back up | l
o z the right side | p
p n | l
e | p
| y
| i
| c
| z
| l
| d
| o
| e
| s
- Kolumna 1: „głupio długi, nieprzerwany zamek błyskawiczny, który nie powinien istnieć na żadnej porządnej bluzie z kapturem”, 24, 0
- Kolumna 2: „Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris faucibus molestie mi. Aliquam nec fringilla ipsum”, 15, 5
:
s e | L m
t i | o u
u d | r s
p o | e p
i o | m i
d h | i a
l t | p l
y n | s l
l e | u i
o c | m g
n e | d n
g d | o i
u y | l r
n n | o f
b a | r c
r n | s
o o | e
k t | i
e s | n t
n i | m a
z x | a m
i e | u
p t | e
p n | q
e | t
d | i
r | ,
l | l c
t | A o
u | . n
h | i
o | s
a | m
h | e e
t | c i
s | t t
| e
| s
| t
| s
| u
| l
| r
| o
| a
| m
| d
| s
| i
| u
| p
| b i
| i s
| c c
| u
| i
| a
| n
| f
| g
| s
| e
| i
| l r
| i u
| t a
| .
| M
EDYCJA: Dodano przypadki testowe
"abcde fgh ij klmnopqr","3","1"
a r
b q
c p
d
o
e
n f
m g
l h
k
i
j
Odpowiedzi:
PHP 7.1,
421 412 218 195 192 191195 bajtówUruchom
-nr
lub wypróbuj online .Drukuje wiodącą, ale nie kończącą się nową linię i jedną wiodącą spację w każdej linii.
źródło
<br /> <b>Parse error</b>: syntax error, unexpected ',', expecting ']' in <b>[...][...]</b> on line <b>7</b><br />