Biorąc pod uwagę ciąg tekstu, wyślij go jako „wieżę”.
Każdy plasterek łańcucha (formy 0:n
) jest powtarzany 5*n
razy, więc pierwszy znak jest powtarzany 5 razy, a następnie pierwszy i drugi 10 razy itp.
Przykłady:
'hello' ->
['h']
['h']
['h']
['h']
['h']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
'cat' ->
['c']
['c']
['c']
['c']
['c']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
Zasady:
Możesz wyprowadzić każdą warstwę jako listę znaków lub tylko ciąg ich połączonych ze sobą.
[["c","c","c","c","c"],["ca","ca","ca","ca","ca","ca","ca","ca","ca","ca"],...]
?Odpowiedzi:
R , 48 bajtów
Wypróbuj online!
Zwraca listę ciągów.
źródło
05AB1E , 6 bajtów
Wypróbuj online!
Zwraca listę ciągów znaków.
Wyjaśnienie
źródło
ηā5*ÅΓ
ηvyg5*Fy=
na 8.Haskell , 36 bajtów
Wypróbuj online!
źródło
Stax , 8 bajtów
Uruchom i debuguj
Rozpakowane, niepolowane i skomentowane, wygląda to tak.
Uruchom ten
źródło
TI-Basic (TI-84 Plus CE), 29 bajtów (27 tokenów)
Wyjaśnienie:
źródło
Siatkówka , 15 bajtów
Wypróbuj online! Link zawiera przypadki testowe. Wyjaśnienie:
Dopasuj każdy znak w ciągu.
$`
jest prefiksem dopasowania. Następnie Retina zapewnia dwa modyfikatory,>
modyfikuje go tak, aby znajdował się w kontekście ciągu między kolejnymi dopasowaniami, przy czym.
zajmuje długość. Dlatego zaczynamy od prefiksu sufiksu, który jest równoważny dopasowaniu, w tym jego prefiksowi. To oszczędza 2 bajty dzięki nakładającym się dopasowaniom. Te$(
następnie Łączy że przy nowej linii, w5*
powtarza, a następnie$.>`
powtarza się dalszą ilość razy podanych przez jego długość.źródło
Płótno , 6 bajtów
Wypróbuj tutaj!
Wyjaśnienie:
źródło
Brachylog , 15 bajtów
Wypróbuj online!
Finał
c
można usunąć, jeśli OP odpowie pozytywnie na pytanie o wyprowadzanie tablic 2D.źródło
Cubix ,
4440 bajtówWypróbuj online!
To wciąż ma wiele braków, ale jest trochę lepsze niż wcześniej.
Jako bardzo krótki opis, postać jest pobierana z danych wejściowych i testowana pod kątem EOI (-1), zatrzymaj się, jeśli tak jest. Stos jest następnie odwracany. Uzyskaj liczbę przedmiotów na stosie i pomnóż przez -5. Upuść to na spód stosu i posprzątaj. Pętlę przez stos, drukując, aż do liczby ujemnej. Wydrukuj nowy wiersz, zwiększ liczbę, jeśli 0 upuści zero, odwróć stos i zacznij od wejścia ponownie, w przeciwnym razie przejdź przez stos, drukuj, aż do liczby ujemnej ... ad nauseum
Wygląda na skostniały
Obejrzyj online
źródło
Galaretka , 8 bajtów
Wypróbuj online!
Wypróbuj online!
Wypróbuj online!
Jest to prawdopodobnie gra w golfa.
źródło
+\ẋ"Jx5Ẏ
JavaScript,
4846 bajtów(dzięki @redundancy)
Edycja: autor wyjaśnił i ta odpowiedź jest teraz nieprawidłowa, ale zostawię ją tutaj bez zmian.
Zwraca tablicę ciągów wieloliniowych.
Spróbuj
Potencjalna strategia:
Nie pomogło mi to zbytnio, ale może ktoś może użyć tego:
Liczba znaków w wierszu (indeksowanym 0)
i
wynosifloor(sqrt(2/5*i+1/4)+1/2)
, która jest oznaczona w JavaScript jako(.4*i+.25)**.5+.5|0
.Dla ciągu długości
n
istniejąn*(n+1)*5/2
linie.Być może:
s=>{for(i=0;(n=(.4*i+++.25)**.5+.5|0)<=s.length;)console.log(s.slice(0,n))}
źródło
Python 3 ,
4341 bajtówDzięki ovs za oszczędność 2 bajtów!
Kod
Wypróbuj online!
źródło
C (gcc) , 67 bajtów
Wypróbuj online!
źródło
Łuska , 8 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Haskell,
464342 bajtówWypróbuj online!
Niestety tak
inits
wymagaimport Data.List
z 45 bajtami jest dłuższy.
Edycja: -1 bajt dzięki @BWO.
źródło
Węgiel drzewny , 11 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjście zawiera 0 powtórzeń podciągu o zerowej długości. Wyjaśnienie:
źródło
Rubinowy ,
4642 bajtówWypróbuj online!
źródło
PowerShell ,
402025 bajtówWynik przecięty na pół dzięki mazzy
+5 bajtów dzięki AdmBorkBork wskazującemu specyfikacje
Wypróbuj online!
Pobiera dane wejściowe poprzez rozpryskiwanie. Działa poprzez budowanie łańcucha przez dodanie następnego znaku do siebie, konwertuje go na tablicę jednoelementową, a następnie powtarza go
5*i
razy.źródło
param
jest bardzo drogi. Staraj się tego unikaćMATL , 12 bajtów
Wypróbuj online!
źródło
V , 17 bajtów
Oczekuje danych wejściowych bez nowych linii i danych wyjściowych ze zbędnymi nowymi liniami.
Mogę usunąć ten wpis, jeśli wejście / wyjście narusza specyfikację wyzwania.
Wypróbuj online!
21 bajtów
Oczekuje danych wejściowych bez znaków nowej linii, ale dane wyjściowe mają tylko jedną wiodącą i końcową linię nowego wiersza.
Wyjaśnienie
Różne podciągi są oddzielone dwoma kolejnymi znakami nowej linii, dzięki czemu powielanie linii ma zastosowanie tylko do linii pasujących do wyrażenia regularnego
$\n\n
.Kiedy podano polecenie duplikacji (
Ä
), np.6Ä
(Myślę), usuwa on bieżący wiersz przed wklejeniemn
, a więc pojawia się tylko w celu dołączenian - 1
kopii.źródło
Perl 5 , 29 bajtów
Wypróbuj online!
źródło
Perl 6 , 25 bajtów
Wypróbuj online!
Anonimowy blok kodu, który zwraca listę ciągów znaków.
Jeśli chcesz, aby była to tablica 1D, możesz dołączyć
flat
z przodu w następujący sposób:Wypróbuj online!
Wyjaśnienie:
Alternatywnie,
Wypróbuj online!
Działa również dla tej samej ilości bajtów.
źródło
Japt, 10 bajtów
Oczekiwanie na potwierdzenie, czy format wyjściowy jest akceptowalny (+2 bajty, jeśli nie).
Spróbuj
źródło
Japt ,
1512 bajtów-3 bajty od @Shaggy
Wypróbuj online!
źródło
JavaScript, 76 bajtów
źródło
i=1;i<=s.length;i++
może byći=0;++i<=s.length;
.Dalej (gforth) , 48 bajtów
Wypróbuj online!
Wyjaśnienie
Objaśnienie kodu
źródło
Java 10,
120929089 bajtów-28 bajtów dzięki @ OlivierGrégoire .
-1 bajt dzięki @ceilingcat .
Wypróbuj online.
Wyjaśnienie:
źródło
s->{for(int i=1,j=1;i<=s.length();i+=j++<i*5?0:+(j=1))System.out.println(s.substring(0,i));}
>=
i?j=1:0
zamiast<
i?0:+(j=1)
.pieprzenie mózgu , 40 bajtów
Wypróbuj online!
źródło
APL (Dyalog Unicode) , 14 bajtów SBCS
Wypróbuj online!
Mój pierwszy apl post, więc proszę dać mi znać, jeśli masz jakieś sugestie
Jak to działa:
źródło
↑
tak naprawdę nie jest rozdzielany na rzędy, ale raczej Łączy [listę list] w rzędy [matrycy] , lub bardziej technicznie Zwiększa rangę kosztem głębokości .Rubinowy , 37 bajtów
Wypróbuj online!
źródło