( 이 도전에 크게 영향을 받았습니다 )
원래 도전에서 당신은 수평 지퍼를 만들어야했지만, 내 까마귀를 내려다 보면서 내 지퍼는 훨씬 더 수직적입니다 (그리고 약간 부러졌습니다) : P
입력
모든 형식 의 단일 문자열 ( s
)과 정수 쌍 ( a
및 b
)이 제공됩니다. 어디:
a < (length-of-s / 2)
b <= ((length-of-s / 2) - (a + 1)) / 6
출력 및 채점
프로그램은 전체 프로그램이거나 올바른 형식의 단일 문자열 또는 선택한 배열 (한 줄에 한 항목)을 생성하는 함수일 수 있습니다. 출력 문자가 모두 정렬되는 경우 선행 및 후행 공백과 줄 바꾸기는 선택 사항입니다. 예.
["f r"],["u e"],["l p"],["l p"],["y i"],[" o z "],[" p n "],[" e "]
또는
"f r\nu e\nl p\nl p\ny i\n o z \n p n \n e "
테스트 케이스 1에 적합한 출력
표준 허점 은 금지되어 있으며 바이트 단위의 가장 짧은 코드가 이깁니다. 설명이없는 답변은 이길 수 없습니다.
설명
지퍼를 만들려면 먼저 문자열에서 공백이나 줄 바꿈 문자를 제거해야합니다. 그런 다음 반으로 접습니다 (자세한 내용은 테스트 사례 1 참조).
abcde fgh ij klmnopqr
아래의 두 줄이됩니다.
abcdefghi
과 rqponmlkj
그런 다음 각 문자열의 시작 부분에서 시작하여 다음과 같이 간격을 결정하여 각 하위 문자열에서 동일한 색인 문자를 한 줄에 배치합니다.
[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...
그것은 우리 지퍼의 기초를 만듭니다. 이제 정수 a
와 b
.
a
우편 번호입니다. 지퍼의 위치를 결정하기 위해 출력 라인의 색인을 지퍼를 닫는 지점으로 사용합니다. 예를 들어 [3]
위의 예제에서 대괄호로 묶인 부분은 지퍼가있는 곳입니다.
지퍼가 닫히기 전에, 위의 지퍼는 a-2
3 칸에 a-1
가까운 곳 과 1 칸에 가까운 곳에 도달 할 때까지 5 칸 간격을 유지해야합니다 . 위의 예에서 명확하게하기 위해 a = 3
(0 인덱스)
b
내 지퍼 구멍 수입니다. 지퍼에 구멍을 만들기 위해 간격을두고 문자열을 다시 나눕니다.
로 예를 들어 구멍의 인덱스를 시작으로 h
우리의 간격을 증가 h-1
, 한 칸에 h
3 개 공간과 h+1
다시 한 공간을 떠나, h-2
그리고 h+2
그들이 구멍의 일부로 간주되므로 한 줄에 하나의 문자.
지퍼 다음과 각 구멍 사이에는 한 문자의 간격이 있어야 지퍼가 구멍 사이에 완전히 연결되어 보입니다.
구멍의 색인을 선택할 수 있지만 모두 지퍼의 '닫힌'섹션 내에 있어야합니다.
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
묻지 않으면 모든 것이 이해되기를 바라고 있습니다. 질문을 예상하면 p
두 번째 예제 의 문자 가 두 번째 하위 문자열에 있음을 알 수 있지만 줄의 시작 부분에 나타납니다. 1-2-1-2-의 순서를 따라야합니다. 1-2, 출력에서의 위치에 관계없이 각 반에서 문자를 가져옵니다.
테스트 사례
"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
- 1 열 : "어느 정도 까마귀에도 존재하지 않아야하는 매우 길지 않은 긴 지퍼", 24, 0
- 2 열 : "Lorem ipsum dolor 앉은 자세, 헌신적 인 지방 제거 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
편집 : 추가 테스트 사례
"abcde fgh ij klmnopqr","3","1"
a r
b q
c p
d
o
e
n f
m g
l h
k
i
j