Geben Sie eine Textfolge als "Turm" aus.
Jedes Stück der Zeichenfolge (des Formulars 0:n
) wird mehrmals wiederholt 5*n
, sodass das erste Zeichen fünfmal, dann das erste und das zweite zehnmal usw. wiederholt wird.
Beispiele:
'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']
Regeln:
Sie können jede Ebene als Liste von Zeichen oder nur als Zeichenfolge ausgeben.
[["c","c","c","c","c"],["ca","ca","ca","ca","ca","ca","ca","ca","ca","ca"],...]
?Antworten:
R , 48 Bytes
Probieren Sie es online!
Gibt eine Liste von Zeichenfolgen zurück.
quelle
05AB1E , 6 Bytes
Probieren Sie es online!
Gibt eine Liste mit Zeichenfolgen zurück.
Erläuterung
quelle
ηā5*ÅΓ
ηvyg5*Fy=
für 8.Haskell , 36 Bytes
Probieren Sie es online!
quelle
Stax , 8 Bytes
Führen Sie es aus und debuggen Sie es
Ausgepackt, ungolfed und kommentiert sieht es so aus.
Führen Sie dieses aus
quelle
TI-Basic (TI-84 Plus CE), 29 Byte (27 Token)
Erläuterung:
quelle
Retina , 15 Bytes
Probieren Sie es online! Link enthält Testfälle. Erläuterung:
Entspricht jedem Zeichen in der Zeichenfolge.
$`
ist das Präfix des Matches. Retina stellt dann zwei Modifikatoren zur Verfügung und>
ändert sie so, dass sie zwischen aufeinanderfolgenden Übereinstimmungen im Kontext der Zeichenfolge steht, während sie.
die Länge annimmt. Wir beginnen daher mit dem Präfix des Suffix, das der Übereinstimmung einschließlich des Präfixes entspricht. Dies spart 2 Bytes bei überlappenden Übereinstimmungen. Das$(
verkettet dann das mit einer neuen Zeile, das5*
wiederholt es, und das$.>`
wiederholt es ein weiteres Mal, das durch seine Länge gegeben wird.quelle
Canvas , 6 Bytes
Probieren Sie es hier aus!
Erläuterung:
quelle
Brachylog , 15 Bytes
Probieren Sie es online!
Das Finale
c
kann entfernt werden, wenn OP die Frage nach der Ausgabe von 2D-Arrays positiv beantwortet.quelle
Cubix ,
4440 BytesProbieren Sie es online!
Dies hat noch viele No-Ops, aber es ist ein bisschen besser als zuvor.
Als sehr kurze Beschreibung wird ein Zeichen aus der Eingabe genommen und auf EOI (-1) getestet. Ist dies der Fall, halten Sie an. Der Stapel wird dann umgekehrt. Ermitteln Sie die Anzahl der Elemente auf dem Stapel und multiplizieren Sie diese mit -5. Lass das auf den Boden des Stapels fallen und räum auf. Durchlaufen Sie den Stapel und drucken Sie, bis eine negative Zahl angezeigt wird. Drucken Sie eine neue Zeile, erhöhen Sie die Zahl, wenn 0 die Null senkt, kehren Sie den Stapel um und beginnen Sie erneut mit der Eingabe. Andernfalls durchlaufen Sie den Stapel, und drucken Sie, bis eine negative Zahl ... ad nauseum ist
Kubifiziert sieht es aus
Schau es dir online an
quelle
Gelee , 8 Bytes
Probieren Sie es online!
Probieren Sie es online!
Probieren Sie es online!
Das ist wahrscheinlich golfen.
quelle
+\ẋ"Jx5Ẏ
JavaScript,
4846 Bytes(danke @redundancy)
Edit: Der Autor hat geklärt und diese Antwort ist jetzt nicht gültig, aber ich werde sie hier unverändert lassen.
Gibt ein Array von mehrzeiligen Zeichenfolgen zurück.
Versuch es
Mögliche Strategie:
Es hat mir nicht viel geholfen, aber vielleicht kann jemand das benutzen:
Die Anzahl der Zeichen in der (0-indizierten) Zeile
i
istfloor(sqrt(2/5*i+1/4)+1/2)
, die in JavaScript als golfen wird(.4*i+.25)**.5+.5|0
.Für eine Reihe von Längen
n
gibt esn*(n+1)*5/2
Linien.Vielleicht:
s=>{for(i=0;(n=(.4*i+++.25)**.5+.5|0)<=s.length;)console.log(s.slice(0,n))}
quelle
Python 3 ,
4341 BytesVielen Dank an ovs für das Speichern von 2 Bytes!
Code
Probieren Sie es online!
quelle
C (gcc) , 67 Bytes
Probieren Sie es online!
quelle
Schale , 8 Bytes
Probieren Sie es online!
Erläuterung
quelle
Haskell,
464342 BytesProbieren Sie es online!
Benötigt
inits
leiderimport Data.List
somit seinen 45 bytes ist es länger.
Edit: -1 Byte dank @BWO.
quelle
Holzkohle , 11 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Die Ausgabe enthält 0 Wiederholungen der Teilzeichenfolge mit der Länge Null. Erläuterung:
quelle
Ruby ,
4642 BytesProbieren Sie es online!
quelle
MATL , 12 Bytes
Probieren Sie es online!
quelle
V , 17 Bytes
Erwartet Eingaben ohne Zeilenumbrüche und Ausgaben mit überflüssigen führenden Zeilenumbrüchen.
Ich kann diesen Eintrag entfernen, wenn die Eingabe / Ausgabe die Herausforderungsspezifikation verletzt.
Probieren Sie es online!
21 Bytes
Erwartet Eingaben ohne Zeilenumbrüche, aber Ausgaben mit nur einer führenden und nachfolgenden Zeile.
Erläuterung
Unterschiedliche Teilzeichenfolgen werden durch zwei aufeinanderfolgende Zeilenumbrüche getrennt, sodass die zeilenweise Duplizierung nur für Zeilen gilt, die mit dem regulären Ausdruck übereinstimmen
$\n\n
.Wenn der Befehl duplication (
Ä
) eine Zählung liefert, zB6Ä
(glaube ich), löscht er die aktuelle Zeile vor dem Einfügen vonn
Zeiten und erscheint somit nur zum Anhängen vonn - 1
Kopien.quelle
Perl 5 , 29 Bytes
Probieren Sie es online!
quelle
Perl 6 , 25 Bytes
Probieren Sie es online!
Anonymer Codeblock, der eine Liste mit Zeichenfolgen zurückgibt.
Wenn Sie es als 1D-Array haben möchten, können Sie es wie folgt voranstellen
flat
:Probieren Sie es online!
Erläuterung:
Alternative,
Probieren Sie es online!
Funktioniert auch für die gleiche Anzahl von Bytes.
quelle
Japt, 10 Bytes
Warten auf Bestätigung, ob das Ausgabeformat akzeptabel ist (+2 Byte, wenn nicht).
Versuch es
quelle
Japt ,
1512 Bytes-3 Bytes von @Shaggy
Probieren Sie es online!
quelle
JavaScript, 76 Bytes
quelle
i=1;i<=s.length;i++
kann seini=0;++i<=s.length;
.Viertens (viertens) , 48 Bytes
Probieren Sie es online!
Erläuterung
Code-Erklärung
quelle
Java 10,
120929089 Bytes-28 Bytes dank @ OlivierGrégoire .
-1 Byte dank @ceilingcat .
Probieren Sie es online aus.
Erläuterung:
quelle
s->{for(int i=1,j=1;i<=s.length();i+=j++<i*5?0:+(j=1))System.out.println(s.substring(0,i));}
>=
und?j=1:0
anstelle von<
und wechselte?0:+(j=1)
.PowerShell ,
40 bis20 ByteScore halbiert dank mazzy
Probieren Sie es online!
Übernimmt die Eingabe per Splatting. Erstellen Sie die Zeichenfolge, indem Sie das nächste Zeichen zu sich selbst hinzufügen, es in ein Array mit einem Element konvertieren und es dann fünfmal wiederholen.
quelle
param
ist sehr teuer. Versuchen Sie es zu vermeidenPython 3 , 55 Bytes
Probieren Sie es online!
quelle
Sauber , 47 Bytes
Probieren Sie es online!
quelle
Gelee , 9 Bytes
Probieren Sie es online!
-2 Bytes dank Mr. Xcoder
quelle