Hilfe! Mein Gerät funktioniert nicht richtig und wenn ich versuche, einen String zu wiederholen, erhalte ich ein unordentliches Ergebnis. Anstatt die gleiche Zeichenfolge N- mal zu wiederholen , füllt es ein NxN- Quadrat mit jedem seiner Zeichen und stapelt die Quadrate auf.
Zum Beispiel erhalte ich bei gegebener Zeichenfolge "Test"
und der Zahl 2
anstelle von "TestTest"
:
TT
TT
ee
ee
ss
ss
tt
tt
Nachdem ich das eine Weile gesehen hatte, fing ich an, es zu mögen. Ihre Aufgabe heute ist es, dieses seltsame Verhalten zu reproduzieren. Bei einer nicht leeren Zeichenfolge, die nur aus druckbarem ASCII -Code besteht, und einer positiven Ganzzahl wird die Zeichenfolge ausgegeben, die mein fehlerhaftes Gerät zurückgibt.
Es gelten alle Standardregeln.
Die Eingabe und Ausgabe kann auf jede vernünftige Weise erfolgen.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes in jeder Sprache.
Testfälle
Eingang Ausgabe ---------- "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 ----------
Einen größeren Testfall finden Sie hier . Viel Glück und viel Spaß beim Golfen!
it fills an NxN square
- Keine korrekte Aussage.Antworten:
Gelee , 4 Bytes
Inspiriert von Mr. Xcoders Jelly-Missbrauch
Ein vollständiges Programm, das die Zeichenfolge und die Zahl als Befehlszeilenargumente verwendet und das Ergebnis ausgibt (da es als dyadische Verknüpfung eine Liste von Zeichenfolgen und Zeilenumbrüchen zurückgibt, die möglicherweise nicht akzeptabel sind).
Probieren Sie es online!
Wie?
Das naive (nicht-missbräuchliche) Fünf-Byte ist:
Der von Mr. Xcoder verwendete Missbrauch (Pythons
operator.mul
kann auf einstr
und ein wirkenint
, um diestr
- hier einzelnen Zeichen - zu wiederholen, und das Atom, das ihn verwendet×
, vektorisiert sein linkes Argument) kann auch hier verwendet werden, umx€
durch×
- das vollständige Programm zu ersetzen :quelle
Gelee , 5 Bytes
Genau das müssen wir tun ... Missbrauch undefinierten Verhaltens! *
Probieren Sie es online!
* Durch undefiniertes Verhalten spreche ich über das
×
Wiederholen von Zeichenfolgen. Manchmal ist es kürzer als sonst, warum also nicht?quelle
Haskell , 26 Bytes
Die Funktion
(!)
gibt eine Liste von Zeilen zurück.Probieren Sie es online!
quelle
Bash + GNU Sed, 58
Eine sehr ähnliche Technik zur Verwendung von dieser Antwort , wie nahe ist ein dup zu veranschaulichen dies , dass diese Frage ist:
Probieren Sie es online aus .
quelle
Schale ,
54 Bytes-1 Byte dank @Zgarb
Probieren Sie es online!
quelle
ṠMRṘ
funktioniert, wenn Sie die Eingänge tauschen.PowerShell , 31 Byte
Probieren Sie es online!
Erläuterung:
quelle
05AB1E ,
75 Bytes-2 Bytes dank Scottinet
Probieren Sie es online!
quelle
=
) und durch den Austauschvy
mitε
: Online ausprobieren!Python 3 , 42 Bytes
Probieren Sie es online!
quelle
MATL , 5 Bytes
Probieren Sie es online!
Erläuterung
quelle
C ++,
125123 Bytes-2 bytes dank aschepler
Stellen Sie sicher, dass die Überladung des
+=
aufgerufenen Operators einenchar
Datentyp in dieser Anweisung annimmtif(!(i++%b))r+=10
quelle
using s=std::string;
ist kürzer alstypedef std::string s;
zwei Bytes.Japt , 7 Bytes
Gibt ein Array von Strings aus.
Probieren Sie es aus (
-R
Flagge nur zu Visualisierungszwecken)Erläuterung
Implizite Eingabe von Zeichenfolge
U
und GanzzahlV
.Generieren Sie ein Array von Ganzzahlen von
0
bisV-1
und übergeben Sie diese jeweils einer Funktion.Map (
m
) überU
und wiederhole (r
) jedes ZeichenV
mal.Transponieren Sie das resultierende Array und geben Sie es implizit aus.
quelle
R , 59 Bytes
Schreibt an stdout.
Teilt die Zeichenfolge in Zeichen auf, wiederholt sie jedes
n^2
Mal und druckt dann mit Breiten
und ohne Trennzeichen.Probieren Sie es online!
quelle
J,
1514 BytesSicher nicht optimal. Gibt ein 2D-Array von Zeichen zurück. Nimmt
n
als linkes Argument und den String als rechtes.Auf dem Handy fehlen also die üblichen Annehmlichkeiten.
Erläuterung
(Für alte Antwort)
$"1 0
gestalten Sie jeden Buchstaben zu um(2#[)
einn
*n
Matrix.,/
Matrizen zusammenfügen, um die Ausgabe zu erhalten.quelle
Perl 5 , 26 + 1 (-p) = 27 Bytes
Probieren Sie es online!
quelle
Pyth, 9 Bytes
Probieren Sie es hier aus!
Pyth,
1110 BytesProbieren Sie es hier aus!
Oder 10 Bytes:
Oder 11 Bytes:
quelle
Kohle , 9 Bytes
Probieren Sie es online!
Erläuterung
quelle
Brainfuck, 103 Bytes
Probieren Sie es online aus (Stellen Sie sicher, dass der dynamische Speicher aktiviert ist, da er sonst nicht ausgeführt werden kann.)
Hinweis: Die Eingabe unterscheidet sich geringfügig. Dieser Code enthält eine Zeichenfolge, bei der das letzte Zeichen eine Ziffer für die Anzahl der Wiederholungen ist. So könnte die Eingabe aussehen
Test5
.Dieser Code erfordert ein unbegrenztes Band und basiert auf dem Umbruchverhalten von Bytes.
Ungolfed:
quelle
SOGLOnline-Commit 2940dbe , 4 Bytes
Dies wurde für ein bestimmtes Commit gemacht, nämlich das, bevor ich es geändert habe
∙
, wenn es für ein Array von Zeichenfolgen verwendet wurde, wobei jeder Buchstabe x-mal wiederholt wurde, um jedes Element x-mal zu wiederholen. Hier ist der Online-Interpreter ohne diese Version, die, wie zu sehen ist, nicht funktioniert.Um das Festschreiben zu versuchen, laden Sie dieses herunter , öffnen Sie die
index.html
Datei, fügen Sie das Programm ein∙ι*I
und schreiben Sie in die Eingabe so etwas wieErläuterung:
quelle
Java 8,
152128118100 BytesProbieren Sie es online!
quelle
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 Bytes
Nimmt die Wiederholung als linkes Argument und den Text als rechtes Argument.
Probieren Sie es online!
{
…}
Ein unbenannter Lambda wo⍺
das linke Argument und⍵
das rechte Argument dargestellt werden⍪⍵
Machen Sie den Text zu einer einspaltigen Tabelle⍺/
replizieren⍺
mal horizontal⍺⌿
repliziere⍺
mal vertikalquelle
Japt , 7 Bytes
Gibt ein Array von Zeichenfolgen zurück.
Probieren Sie es online! mit dem
-R
Flag, um das Array mit Zeilenumbrüchen zu verbinden.Erläuterung
quelle
D, 86 Bytes
Probieren Sie es online!
Nimmt die Zeichenfolge als linkes Argument und die Ganzzahl als rechtes Argument. Dies ist eine Portierung der C ++ - Antwort von HatsuPointerKun in D.
quelle
C (GCC) ,
8379 BytesProbieren Sie es online!
quelle
CJam, 11 Bytes
Funktion, die eine Zeichenfolge gefolgt von int annimmt.
Probieren Sie es online
quelle
Kotlin 1.1 - 99 Bytes
Gibt die gesamte Ausgabe als String zurück.
TryItOnline kann nicht verwendet werden, da 1.1 nicht unterstützt wird
Prüfung
Es wäre 84, wenn eine Liste von Zeichenfolgen als Ausgabe akzeptabel wäre:
quelle
PHP, 97 Bytes
quelle
Mathematica, 49 Bytes
Eingang
quelle
Pyth , 12 Bytes
Klein, aber ich bin noch nicht dort angekommen.
Erläuterung:
Test Suite
quelle
Clojure ,
8275 BytesProbieren Sie es online!
Unkomprimiert:
Bearbeiten: Rasiert ein paar Zeichen am Ende, indem eine for-Schleife durch die stdlib-Wiederholfunktion ersetzt wird.
quelle
C # (.NET Core) , 68 + 18 Byte
Ebenfalls in der Byteanzahl enthalten:
Probieren Sie es online!
Die Ausgabe ist eine Sammlung von Zeichensammlungen (eine Sammlung für jede Zeile).
Erläuterung:
quelle