입력 한 단어를 받아 그 단어를 빼고 첫 글자를 뺀 프로그램을 만든 다음 모든 글자가 사라질 때까지 반복합니다. 예를 들어, cat
될 것입니다 catatt
, 그리고 hello
될 것입니다 helloellolloloo
.
영어 알파벳의 26 글자 중 하나를 입력 하십시오. 공백으로 구분 된 여러 단어가있을 수 있으며 모든 단어에 변경 사항을 적용해야합니다.
출력
추가 된 글자가 더 이상 없을 때까지 각 단어의 첫 글자가 누락 된 후 두 번째 글자가 누락 된 상태로 입력 된 단어.
더 많은 예 :
ill eel
출력 illlll eelell
laser bat
출력 laserasersererr batatt
darth vader
출력 dartharthrththh vaderaderdererr
이것은 코드 골프이므로 가장 짧은 코드가 승리합니다.
설명 :
입력 또는 출력을 목록으로 취급 할 수 있습니다. 공백 대신 줄 바꿈을 사용하여 단어를 구분할 수 있습니다. 입력에 후행 공백을 추가 할 수 있습니다.
답변
apt -m
, 6 3 바이트
입력과 출력은 단어의 배열입니다.
£sY
설명
:For each word in the input array
£ :Map each letter at index Y
sY : Slice the current word from index Y
답변
brainfuck , 60 56 바이트
,[>++++++++[-<----<++++>>]<[>>]<[[<]>.[[-]>[.>]<[<]>]],]
후행 공백이 필요하고 선행 공백을 인쇄합니다. 이 두 가지 모두 우회 될 수 있지만 112 바이트로 끝납니다 .
설명
,[ Loop over each byte of input
Tape: 32 w o r-32 d'
>++++++++[-<----<++++>>] Subtract 32 from the character and add 32 to the previous char
Tape: 32 w o r d-32 0'
<[>>]< If the last character was a space
Tape: 32 w o r d-32 0'
or
Tape: 32 w o r d' space-32
[
[<]>. Move to the end of the word and print out the space
[ Loop over each letter
[-] Remove the first letter (initially space)
>[.>] Print the rest of the word
<[<]> Move back to the first letter
]
Tape: clear
]
,] Get the next byte of input
답변
하스켈, 36 21 바이트
map$concat.scanr(:)""
편집 : 새로운 IO 형식으로 인해 -15 바이트 (공백으로 구분 된 단어 대신 단어 목록)
답변
펄 -p
, 36 25 23 바이트
s!\b|\S!$'=~s/ .*//r!eg
이것은 단일 regsub입니다. 먼저 모든 단어 경계 또는 공백이 아닌 문자와 일치합니다.
[][H][e][l][l][o] [][W][o][r][l][d]
이러한 각 일치 항목은 나머지 단어로 바꿔야합니다.
[→Hello][H→ello][e→llo][l→lo][l→o][o→] (...)
$'
일치 후 문자열 부분을 저장하는 특수 변수로이를 수행 할 수 있습니다 . 그러나, 우리는 중첩 된 regsub 적용 할 필요가 s/ .*//
있는 최초의 우주 과거의 모든 것을 제거 그것에을 $'
입력의 나머지 단어를 제거하기 위해.
2 바이트 동안 @nwellnhof 에게 감사드립니다 .
답변
파이썬 3 , 49 바이트
d=lambda s:' '.join(n+d(n[1:])for n in s.split())
이것은 "".split()
빈 배열 을 반환하여 재귀의 기본 사례에 대한 검사 역할 을하는 사실을 이용 합니다.
답변
젤리 , 3 바이트
ḊƬ€
K
이제 어레이 입 / 출력이 허용되므로 더 이상 필요하지 않습니다 .
ḊƬ€
€ For each word:
Ḋ Remove the first letter
Ƭ until there are none left.
답변
APL (Dyalog), 19 9 바이트
{⌽∊,\⌽⍵}¨
내 두뇌를 조깅 해주신 @ H.PWiz에게 감사합니다
APL의 모든 문자열이 문자 배열이기 때문에 작동합니다.
{⌽∊,\⌽⍵}¨
¨ - for each string
⍵} - string argument - ex. "hello"
⌽ - reverse - "olleh"
,\ - scan magic - "o" "ol" "oll" "olle" "olleh"
∊ - enlist(join together) "oolollolleolleh"
{⌽ - reverse - "helloellolloloo"