샌드 박스 게시물은 여기에 있습니다 .
문자열을 "스프링"하는 함수 나 프로그램을 만듭니다.
- 입력은 Stdin의 문자열이거나 가장 가까운 대안입니다.
- 입력은 인쇄 가능한 ASCII 및 / 또는 공백 만 포함합니다
- 출력은 Stdout 또는 가장 가까운 대안입니다
- 후행 줄 바꿈과 공백은 허용됩니다
문자열을 스프링하는 방법
- 필요한만큼 문자열을 많은 ASCII 스프링 코일로 포맷
- 코일을 가장 가까운 코일까지 공란으로 채 웁니다
- 코일 주위의 스프링을 따라 문자를 읽으십시오.
이것은 ASCII 스프링 코일입니다.
#
# ####
# #
# ####
#
를 Where #들 문자열의 문자입니다
예를 들면 다음과 같습니다.
abcdefghijklmnopqrstuvwxyz
된다
a
b cdef
g h
i jklm
n
o
p qrst
u v
w xyz.
.
를 Where .의 가시성에 대한 공백을 대체합니다.
그런 다음 ASCII 스프링을 따라 아래로 루프 주위에서 문자열을 다시 읽은 다음 g및 u두 번 누르십시오 .
1| a <-3
V b cdef
g h
4| i jklm
V n 2->
...
...기부:
abgjklmhfedcginopuxyz vtsrquw (후행 공백으로)
테스트 사례
(후행 공백을 강조하기 위해 따옴표가 추가됨-IO 측면에서 무시하십시오)
I: "abcdefghijklmnopqrstuvwxyz"
O: "abgjklmhfedcginopuxyz vtsrquw "
I: "!@#"
O: "!@ # "
I: ""
O: ""
I: "12345 67890"
O: "12690 7 54368 "
I: " "
O: " "
출력 길이는 항상 스프링 코일 길이 인 15의 배수입니다.
이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.

메인 루프는 오른쪽에서 왼쪽으로 실행되어 놀이터의 오른쪽으로 감싸집니다. 여기에서 stdin에서 첫 번째 문자를 읽고 EOF 인 경우 종료합니다.
다음 섹션에서는 수식을 사용하여 EOF 문자를 공백으로 변환합니다
문자의 사본이 임시 메모리에 저장되고 4 행 (
) 의 표에서 현재 색인 조회가 수행되어 문자의 출력 여부를 판별합니다.
캐릭터를 출력해야 할 경우 왼쪽 분기를 사용합니다. 다음에 발생할 스왑을 취소하기 위해 스왑을 수행 한 다음 0을 눌러 분기를 오른쪽으로 강제합니다.
캐릭터가 출력되지 않았다면 인덱스 카운터 아래의 스택으로 스왑합니다 (왼쪽 분기에서 취소되는 스왑). 두 경우 모두 현재 색인 오프셋에서 문자를 메모리에 저장하고 색인을 증가
시킨 다음 13보다 큰지 확인합니다. 그렇지 않으면 stdin에서 다음 문자를 읽고 내부 루프를 반복합니다.
만약 그렇다면, 우리는 14 문자 세트를 완성했을 것입니다. 7은 출력되었고 (