Wsparcie! Moje urządzenie działa nieprawidłowo i za każdym razem, gdy próbuję powtórzyć ciąg znaków, otrzymuję nieporządny wynik. Zamiast powtarzać ten sam ciąg N razy, wypełnia kwadrat NxN każdą ze swoich postaci i układa kwadraty w górę.
Na przykład, biorąc pod uwagę ciąg "Test"
i liczbę 2
, zamiast "TestTest"
, otrzymuję:
TT
TT
ee
ee
ss
ss
tt
tt
Po dłuższej perspektywie zacząłem to lubić. Twoim zadaniem dzisiaj jest odtworzenie tego dziwnego zachowania. Biorąc pod uwagę niepusty ciąg, który składa się tylko z drukowalnego ASCII i dodatnią liczbę całkowitą, wypisz ciąg, który zwraca moje źle działające urządzenie.
Obowiązują wszystkie standardowe zasady.
Dane wejściowe i wyjściowe można przetwarzać dowolnymi rozsądnymi środkami.
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach w każdym języku.
Przypadki testowe
Wejście Wynik ---------- „Test”, 2 TT TT ee ee ss ss tt tt ---------- „UuU”, 3 UUU UUU UUU uuu uuu uuu UUU UUU UUU ---------- „A”, 5 AAAAA AAAAA AAAAA AAAAA AAAAA ----------
Możesz znaleźć większy przypadek testowy tutaj . Powodzenia i baw się dobrze grając w golfa!
it fills an NxN square
- Nieprawidłowe stwierdzenie.Odpowiedzi:
Galaretka , 4 bajty
Zainspirowany nadużywaniem Jelly przez pana Xcodera
Pełny program przyjmujący ciąg znaków i liczbę jako argumenty wiersza poleceń i wypisujący wynik (ponieważ jako diademiczny link zwraca listę ciągów znaków i znaków nowej linii, co może być nie do zaakceptowania).
Wypróbuj online!
W jaki sposób?
Naiwny (nieużywający) pięć bajtów to:
Nadużywanie wykorzystywane przez pana Xcoder (Pythona
operator.mul
może działać na zasadziestr
iint
powtarzaćstr
- tutaj pojedyncze postacie - i atom, który go używa,×
, vectorises wrt jego lewy argument) może być użyty tu też wymienićx€
z×
- uzyskując pełny program :źródło
Galaretka , 5 bajtów
Właśnie o to nas proszono ... Nadużywaj niezdefiniowane zachowanie! *
Wypróbuj online!
* Przez niezdefiniowane zachowanie mówię o używaniu
×
do powtarzania ciągów. Czasami zachowanie jest krótsze niż zwykle, więc dlaczego nie?źródło
Haskell , 26 bajtów
Funkcja
(!)
zwraca listę linii.Wypróbuj online!
źródło
Bash + GNU Sed, 58
Stosując technikę bardzo podobną do tej odpowiedzi do zilustrowania, jak blisko do bycia dup do tego , że to pytanie jest:
Wypróbuj online .
źródło
Łuska ,
54 bajtów-1 bajt dzięki @Zgarb
Wypróbuj online!
źródło
ṠMRṘ
działa, jeśli zamienisz wejścia.PowerShell , 31 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
05AB1E ,
75 bajtów-2 bajty dzięki scottinet
Wypróbuj online!
źródło
=
) i zastępującvy
zε
: Spróbuj online!Python 3 , 42 bajty
Wypróbuj online!
źródło
MATL , 5 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
C ++,
125123 bajty-2 bajty dzięki ascheplerowi
Upewnij się, że przeciążenie
+=
wywoływanego operatora machar
typ danych w tej instrukcjiif(!(i++%b))r+=10
źródło
using s=std::string;
jest krótszy niżtypedef std::string s;
o dwa bajty.Japt , 7 bajtów
Zwraca tablicę ciągów.
Wypróbuj (
-R
flaga tylko do celów wizualizacji)Wyjaśnienie
Domniemane wprowadzanie ciągu
U
i liczby całkowitejV
.Wygeneruj tablicę liczb całkowitych od
0
doV-1
i przekaż każdą z nich przez funkcję.Map (
m
) ponadU
i powtarzaj (r
) każdy znakV
razy.Transponuj i niejawnie wyprowadzaj wynikową tablicę.
źródło
R , 59 bajtów
Zapisuje na standardowe wyjście.
Dzieli ciąg na znaki, powtarza się za każdym
n^2
razem, a następnie drukuje z szerokościąn
i bez separatora.Wypróbuj online!
źródło
J,
1514 bajtówNa pewno nieoptymalne. Zwraca tablicę znaków 2D. Pobiera
n
jako lewy argument, a ciąg jako prawy.Na telefon komórkowy, więc brakuje zwykłych udogodnień.
Wyjaśnienie
(Dla starej odpowiedzi)
$"1 0
przekształć każdą postać w(2#[)
n
*n
macierzy.,/
połącz macierze razem, aby uzyskać wynik.źródło
Perl 5 , 26 + 1 (-p) = 27 bajtów
Wypróbuj online!
źródło
Pyth, 9 bajtów
Wypróbuj tutaj!
Pyth,
1110 bajtówWypróbuj tutaj!
Lub 10 bajtów:
Lub 11 bajtów:
źródło
Węgiel drzewny , 9 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Brainfuck, 103 bajtów
Wypróbuj online (pamiętaj, aby włączyć pamięć dynamiczną, bo inaczej się nie uruchomi)
Uwaga: Dane wejściowe są nieco inne. Ten kod przyjmuje ciąg, w którym ostatni znak jest cyfrą liczby powtórzeń. Więc dane wejściowe mogą wyglądać
Test5
.Ten kod wymaga nieograniczonej taśmy i zależy od zachowania zawijania bajtów.
Nie golfowany:
źródło
SOGLOnline commit 2940dbe , 4 bajty
Zostało to zrobione dla konkretnego zatwierdzenia, mianowicie tego, przed którym się zmieniłem
∙
, kiedy jest używane w tablicy ciągów, powtarzając każdą literę x razy, aby powtórzyć każdą pozycję x razy. Tutaj tłumacz online bez tej wersji, który, jak widać, nie działa.Aby spróbować zatwierdzić, pobierz to , otwórz
index.html
plik, wklej program,∙ι*I
a na wejściu napisz coś podobnegoWyjaśnienie:
źródło
Java 8,
152128118100 bajtówWypróbuj online!
źródło
s->n->{for(char c:s)for(int j=0;j++<n;System.out.println("".valueOf(new char[n]).replace('\0',c)));}
APL (Dyalog) , 8 bajtów
Przyjmuje powtórzenie jako lewy argument, a tekst jako prawy argument.
Wypróbuj online!
{
…}
Nienazwana lambda, gdzie⍺
reprezentuje lewy argument i⍵
prawy argument⍪⍵
przekształć tekst w tabelę z jedną kolumną⍺/
powtórzyć⍺
czasy w poziomie⍺⌿
powtórzyć⍺
czasy w pionieźródło
Japt , 7 bajtów
Zwraca tablicę ciągów.
Wypróbuj online! z
-R
flagą, aby połączyć tablicę z nowymi liniami.Wyjaśnienie
źródło
D, 86 bajtów
Wypróbuj online!
Bierze ciąg jako lewy argument, a liczba całkowita jako prawy argument. To jest port odpowiedzi C ++ HatsuPointerKun na D.
źródło
C (gcc) ,
8379 bajtówWypróbuj online!
źródło
CJam, 11 bajtów
Funkcja, która pobiera ciąg, po którym następuje int.
Wypróbuj online
źródło
Kotlin 1,1 - 99 bajtów
Zwraca cały wynik jako ciąg.
Nie można użyć TryItOnline, ponieważ 1.1 nie jest obsługiwany
Test
Byłoby 84, gdyby lista ciągów była akceptowalna jako wynik:
źródło
PHP, 97 bajtów
źródło
Mathematica, 49 bajtów
Wejście
źródło
Pyth , 12 bajtów
Małe zdanie, ale jeszcze tam nie dotarłem.
Wyjaśnienie:
Pakiet testowy
źródło
Clojure ,
8275 bajtówWypróbuj online!
Nieskompresowane:
Edycja: Ogoliłem kilka znaków z końca, zastępując pętlę for funkcją powtarzania stdlib.
źródło
C # (.NET Core) , 68 + 18 bajtów
Również uwzględniony w liczbie bajtów:
Wypróbuj online!
Dane wyjściowe to zbiór kolekcji znaków (jedna kolekcja dla każdej linii).
Wyjaśnienie:
źródło