To oczywiście elipsieseje.
Zainspirowany wiadomością na czacie .
Twoje wyzwanie
Biorąc pod uwagę listę lub spację lub ciąg słów oddzielony przecinkami, ellipsisessiesesifyses.
Aby ellipsisessieses-ify słowo:
- Zacznij od słowa.
- Dodaj pierwszą literę oryginalnego słowa na końcu.
- Dodaj 2 ostatnią literę oryginalnego słowa na końcu.
- Dodaj na końcu ostatnią literę oryginalnego słowa.
- Dodaj pierwszą literę oryginalnego słowa na końcu.
- Dodaj ostatnią literę oryginalnego słowa na końcu.
- Powtórz kroki 5 i 6 raz.
- Jesteś skończony!
Możesz założyć:
- Słowa wejściowe będą tylko alfanumeryczne
- Dane wejściowe i wyjściowe mogą być ciągiem lub listą rozdzieloną spacjami
- Dane wejściowe będą zawierać tylko słowa
- Słowa będą miały co najmniej 2 litery
- Dane wejściowe będą pasować do wyrażenia regularnego
/^[a-z0-9]{2,}( [a-z0-9]{2,})*$/i
- Możesz mieć inny format wejściowy i wyjściowy
- Więcej w przyszłości...
Przypadki testowe:
ellipsis -> ellipsisessieses
goat -> goatgttagtgt
covfefe -> covfefeceefcece
programmer5000 -> programmer5000p000p0p0
up vote down goat -> upuppuupup voteveetveve downdnnwdndn goatgttagtgt
it is golf yo -> itittiitit isissiisis golfgfflgfgf yoyooyyoyo
crossed out 44 is still 44 -> crossedcddecdcd outottuotot 4444444444 isissiisis stillslllslsl 4444444444
Shorteststtsstst answerarrearar ininniinin bytesbssebsbs winswssnwsws!
Odpowiedzi:
JavaScript (ES6),
5857 bajtówNB: Okazuje się, że używa tej samej sztuczki, co Jonathan Allan w tej odpowiedzi Jelly (choć zauważyłem po opublikowaniu).
Oszczędność 1 bajtu dzięki Jonathanowi Allanowi
Działa na tablicach ciągów.
Przypadki testowe
Pokaż fragment kodu
źródło
21102121
z01120101
in-2
z-n
.Galaretka ,
13 1211 bajtówPełny program, który pobiera listę list znaków i drukuje dane wyjściowe rozdzielone spacjami.
Wypróbuj online!
W jaki sposób?
Alternatywnie lista słów do listy słów jest również możliwa w 11 bajtach :
⁽×ʠb3’
może być również zastąpiony przez4,⁵Bj-
dla tej samej liczby bajtów(
[4,10]
w systemie binarnym[[1,0,0],[1,0,1,0]]
łączy się z-1
is[1,0,0,-1,1,0,1,0]
).źródło
K
ponieważ jako monadyczny link zwrócona lista nie byłaby jedną poziom głęboki, który, jak sądzę, przesuwa zbyt luźne operacje we / wy - to znaczy, że wejściem["this", "is", "it"]
wartości zwracanej byłoby[['t','h','i','s',"tssitsts"],['i','s',"issiisis"],['i','t',"ittiitit"]]
(gdzie „...” to listy znaków) i pozostawienie jej do wydrukowania jako pełnego programu zniszczyłoby ją wszystko razem jakthistssitstsisissiisisitittiitit
)05AB1E , 12 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Siatkówka ,
5249 bajtów3 bajty dzięki Arnauldowi.
Wypróbuj online!
źródło
Python 2 , 56 bajtów
Wypróbuj online!
Myślę, że to mój najszybszy FGITW i nie robi to aż tak imponującego. : P
źródło
Python 3 , 60 bajtów
Wypróbuj online!
źródło
Węgiel drzewny , 20 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Zdarzyło się, że przeczytałem odpowiedź @ Arnaulda po zakodowaniu tego, ale jest to po prostu część tego. Wyjaśnienie:
źródło
-rs
flagi?-rs
jest tam tylko po to, aby wyłączyć drukowanie monitu o wprowadzenie-rs
zamiast tego powinienem ustawić tryb domyślny?sed, 46 bajtów
Wypróbuj online!
źródło
JavaScript (ES6),
7460 bytesTakes input as an array, and outputs an array.
-9 bytes thanks to Programmer5000
Test cases:
Show code snippet
źródło
Mathematica, 89 bytes
źródło
Ellipsisessieses
builtin? :(Pyth, 17 bytes
Uses the same trick as in @Jonathan's answer.
Try it here! or Check out the test Suite (Give it some time).
Port of my Python solution,
19 bytes18 bytes:źródło
Dyalog APL,
5149 bytesRequires
⎕ML←3
-9 bytes thanks to @Adám in chat!
Try it online!
źródło
Paradoc (v0.2.10), 13? bytes (CP-1252)
Try it online!
Takes a list of words, and results in a list of words on the stack.
A small variation on the base-3 trick. Maybe it's time to work on my base 250-whatever compressor.
Explanation:
(Byte-counting question: Now that I'm actually demonstrating this in TIO, it take a list of words on the stack and results in a list of words on the stack, but you can't really do much with that list of words unless you close the block started by µ. Should I count that closing brace?)
źródło
Wolfram Language/Mathematica, 66 bytes
Just whipped it up real quick, might have a minor improvement here or there.
źródło
Perl 5,
5549 + 1 (-a) =5650 bytesused a trick from @Arrnauld's post to save a couple bytes
Try it online!
źródło
Charcoal,
3830 bytes-8 bytes thanks to ASCII-only.
Try it online! Link is to verbose version.
Note the trailing space.
źródło
Java 8, 117 bytes
Takes the input as a String-array, and modified this original array instead of returning a new one to save bytes.
Can most likely be golfed some more..
Explanation:
Try it here.
źródło
C# (.NET Core), 106 bytes
Try it online!
Lambda function that takes input as array of strings, and modifies original array for output
źródło