Die Herausforderung: Ausgabe dieser exakten ASCII-Kunst eines Spinnennetzes in einem Fenster:
_______________________________
|\_____________________________/|
|| \ | / ||
|| \ /|\ / ||
|| /\'.__.' : '.__.'/\ ||
|| __.' \ | / '.__ ||
||'. /\'---':'---'/\ .'||
||\ '. /' \__ _|_ __/ '\ .' /||
|| | /. /\ ' : ' /\ .\ | ||
|| | | './ \ _|_ / \.' | | ||
||/ '/. /'. // : \\ .'\ .\' \||
||__/___/___/_\(+)/_\___\___\__||
|| \ \ \ /(O)\ / / / ||
||\ .\' \.' \\_:_// './ '/. /||
|| | | .'\ / | \ /'. | | ||
|| | \' \/_._:_._\/ '/ | ||
||/ .' \ / | \ / '. \||
||.'_ '\/.---.:.---.\/' _'.||
|| '. / __ | __ \ .' ||
|| \/.' '. : .' '.\/ ||
|| / \|/ \ ||
||____/_________|_________\____||
|/_____________________________\|
Quelle: Joan Stark (Spinne und Rahmen leicht modifiziert und die Initialen für die Herausforderung entfernen).
Erforderliche Zeichen: _|\/'.:-(+)O
(12) + Leerzeichen und neue Zeile (2)
Herausforderungsregeln:
- Ein oder mehrere nachgestellte Leerzeichen und / oder Zeilenumbrüche sind zulässig.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Es gelten Standardregeln Ihre Antwort Daher dürfen Sie STDIN / STDOUT, Funktionen / Methode mit den richtigen Parametern und vollständige Programme verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
code-golf
ascii-art
kolmogorov-complexity
Kevin Cruijssen
quelle
quelle
.
Vor dem steht eine 7 ZeichenO
. Soll es danach auch noch eine 7 Zeichen geben?Antworten:
SOGL V0.12 , 141 Bytes
Erläuterung:
Probieren Sie es hier aus! (Das Programm enthält Registerkarten, daher hier eine bessere Programmdarstellung.)
quelle
Arnold C,
1257 1261 12561233 BytesDies ist mein erster Versuch, in der höchsten Sprache zu programmieren, also werde ich meine Abneigungen aufzehren, da ich keine intelligente Lösung für dieses Problem anbiete, obwohl ich in der Sprache programmiere, die vom Himmel abstammt.
Ist hier ein Compiler, wenn jemand zufällig diesen Algorithmus in Frage stellt.
Bleib dabei.
quelle
TALK TO THE HAND
!vim,
373371 Bytes<ESC>
ist ein standin für 0x1B.Ungolfed
Probieren Sie es online!
Und die Erklärung zu klären Sie als Kind gegeben wurden: Es stimmt zwar, dass die einzige Emotion , Spinnen persönlich das Gefühl , ist Hass, sie sind fähig ist Erfassen Angst in einer Entfernung von mehr als 50 Metern.
quelle
<CR>
aber drücken Zeilen, die mit<CR>
mean enden , zweimal die Taste? Die Antwort scheint in den beiden obigen Fällen Nein zu sein , aber dann enden die Zeilen mits/ /_/g
undtr
nicht mit,<CR>
aber ich kann sie nicht zum Laufen bringen, ohne die Eingabetaste zu drücken.<CR>
s waren ein Fehler und der Zeilenvorschub funktioniert auch. (Ich habe die Zeilen mit eingegeben<C-v><ENTER>
, die generiert werden<CR>
. Aus diesem Grund wird sie^M
anstelle einer neuen Zeile angezeigt.) Ich habe den Code geändert, um diese beiden Duplikate zu entfernen und die Zeilenumbrüche durch normale Zeilenumbrüche / Zeilenvorschübe zu ersetzen. Alle verbleibenden Zeilenumbrüche müssen genau einmal eingegeben werden. (Die ungolfed-Version hat noch ein paar zusätzliche Leerzeilen; diese entsprechen nicht den tatsächlichen Tastendrücken. Die golfed-Version ist genau das, was getippt werden muss, mit Ausnahme der<ESC>
s.){ cat foo.vim; echo ':wq'; } | vim a.txt
damit Sie nicht ohne Tastatur an stdin hängen bleiben. Der Vorteil ist, dass ich das Programm direkt aus einer Datei ausführen kann, anstatt bei jeder Änderung genau zu versuchen, es einzugeben. Für dieses Programm sind Bytes und Tastenanschläge gleichwertig, aber das ist nicht immer der Fall. zB<C-v><ENTER>
drei Tastenanschläge, sondern erzeugt ein Byte\r
.Jelly ,
206205 BytesEin Niladic-Link, der eine Liste von Zeichen zurückgibt, oder ein vollständiges Programm, das die Grafik druckt.
Probieren Sie es online!
Könnte die grob-vertikale Symmetrie genutzt werden?
Wie?
Die ersten 158 Bytes sind eine sehr große Zahl, die unter Verwendung der ersten 250 Bytes von Jellys Codepage in die bijektive Basis 250 geschrieben wird:
Diese Zahl (in der Größenordnung von 10 372 ist , um eine Liste ihrer Ziffern in der Basis-9 (391 Zahlen zwischen 0 und 8) überführt und dann drei ist mit dem 203 hinzugefügt RD , 204 th , 220 th und 221 st Ziffern ( welches wird der Spinnenkörper sein):
Das Ergebnis wird dann in die 12 Zeichen der linken Seite (bis einschließlich der mittleren Spalte) der Grafik konvertiert:
Die vollständigen Zeilen werden dann durch Prellen jede linke Seitenreihe aufgebaut (das reflektiert es , als ob seine letzte Zeichen ein Spiegel wurden), wechselnde all das
(
zu)
, die\
zu/
und die/
auf\
, und dann nur die neuen Werte auf der rechten -hand Seite mit einem vektorisiertenand
mit der linken Seite von vor. Das Ergebnis wird schließlich mit Zeilenumbrüchen kombiniert, um die Kunst zu schaffen:quelle
Kohle ,
239238 BytesProbieren Sie es online! Link ist eine ausführliche Version des Codes. Meist wird nur eine große komprimierte Zeichenfolge gedruckt, die sich wiederholenden Teile wurden jedoch separat codiert, um die Länge der Zeichenfolge zu verringern. Insbesondere wird
Rectangle
eine Anzahl von Bytes gespart, indem der Abstand zum Erreichen der 17. Spalte vermieden wird, und sogar die diagonalen Linien sparen jeweils ein Byte.Bearbeiten: Charcoal scheint die komprimierte Zeichenfolge nicht mehr zu erkennen, und bei der aktuellen Komprimierung wird eine kürzere Zeichenfolge generiert, die 51 Byte einspart. Außerdem kann eine der diagonalen Linien für eine weitere Einsparung von 2 Byte in die Zeichenfolge zurück verschoben werden. (Beachten Sie, dass dies nicht die
-sl
Anzahl ist, die von angezeigt wird ; tatsächlich scheint sogar die ursprüngliche Anzahl um 1 verschoben worden zu sein.) Es gibt jedoch drei zusätzliche Einsparungen, die sich auch auf den ursprünglichen Code ausgewirkt hätten : Probieren Sie es online aus!B
(Box
) anstelle vonUR
(Rectangle
).↙P×_¹⁶←/
anstelle von↓P×_¹⁵←_/
.×_¹⁶J⁵¦¹
anstelle vonP×_¹⁶M⁵¦²
.quelle
PHP , 380 Bytes
Probieren Sie es online!
PHP , 494 Bytes
Probieren Sie es online!
quelle
Brainfuck , 4086 Bytes
Probieren Sie es online!
Dies ist nur eine Suchmethode zum Generieren der Zeichenfolge.
Neue Zeilen für mehr Lesbarkeit hinzugefügt:
quelle
---------------------------------------------------------------
stattdessen so etwas haben>++++++++[-<-------->]<+
?>
s zu minimieren, und die<
s werden später im Code angezeigt . Ich weiß nicht, wie viele (wenn überhaupt) Bytes mein Ansatz speichert. Ich werde mehr Zellen verwenden.>>>
Sequenzen später zu beeinflussen, da sie nur als temporärer Platz für die Faktorisierungen verwendet werden. Insbesondere wenn Sie die Zellen von links nach rechts füllen, können Sie z. B. Zelle 5 als temporären Platz zum Einrichten von Zelle 4 verwenden und dann (da Zelle 5 beim Einrichten von Zelle 4 auf Null gesetzt wird) eine neue speichern Wert in Zelle 5, während Zelle 6 als temporärer Speicher verwendet wird. Solange die endgültigen Werte der Zellen unverändert bleiben, können Sie alle Änderungen vornehmen,.
ohne den späteren Code ändern zu müssen.JavaScript (ES6), 471 Byte
Verpackt mit einer ES6-Variante von RegPack .
quelle
Java (JDK) , 494 Byte
Probieren Sie es online!
Vielen Dank an Kevin Cruijssen für das Golfen mit ein paar Bytes plus 6 Bytes, indem er
Windows-1252
zu wechseltcp1252
und nur zu ASCII wechselt, um die Zeichenfolge ein wenig zu komprimieren :)Hinweis: Die Datei muss für die Byteanzahl als Windows-1252 codiert sein, kann aber zum Testen sicher in UTF-8 kopiert / eingefügt werden!
Die lange Kette ist eigentlich die Zeichenfolge, da ihre Zeichen einem flexiblen Zeichencodierer zugeordnet sind (einmal bin ich froh, CP-1252 zu verwenden). Der Rest ist nur die Aufhebungsmethode.
Die Abbildung wurde unter Verwendung einer Permutation gefunden, die zuerst auf die Häufigkeit jedes Zeichens in der ASCII-Technik initialisiert wurde. Zuordnungen, die zu den Zeichen
'"'
und führen'\\'
wurden explizit die kürzeste gültige Zeichenfolge wie möglich entsorgt werden.Ungolfed
Entdeckung zuordnen
quelle
()
zu einem zufälligen Zeichen wechseln . Ich habe nie etwas gesagt über keine Eingabe, so dass Sie ein nicht benutztes verwenden ,Object
die istnull
als Eingabe. Relevanter Meta-Post. . Oh, und Sie können ein weiteres Byte speichern , indem Siebyte
aufint
in der for-Schleife jeder.r+=a;
es gleichbedeutend mitr = r + (a)
und mit Zeichen ist, das heißt, sie werden vor der Verkettung miteinander addiert, sodass sie jetzt alsint
s betrachtet werden, und die resultierende Zeichenfolge ähnelt127190190190190190190190190190...
. Ich habe ein geschrieben Kommentar dazu im Code ungolfed version;)Windows-1252
kann Golf spielencp1252
. Erklärung hier.b>>4
braucht keine Parens, denke daran, bitweise sind sehr, sehr niedrige PrioritätRetina ,
465463425 BytesProbieren Sie es online!
quelle
C # (.NET Core) ,
935 676 636627 BytesProbieren Sie es online!
Ich wollte einen anderen Ansatz ausprobieren und die Zeichnung neu erstellen. Endete mit einem Code, der mehr Bytes als die Zeichnung selbst hatte (782 Bytes). Dann habe ich die RLE-Zeichenfolge komprimiert, indem ich ein Wörterbuch mit den am häufigsten verwendeten Gruppen erstellt habe. Nach dem Komprimieren habe ich weitere Wörterbücher erstellt und erneut komprimiert, bis die Zeichenfolge nicht mehr reduziert werden konnte. Die Zeichnung wird erstellt, indem zuerst diese Gruppen erweitert und dann mit RLE dekomprimiert werden.
quelle
Python 2.7,
414 405401 BytesDekomprimiert einfach den String und druckt ihn aus. :)
quelle
Z_FILTERED
), die Header und Prüfsummen vermeidet, können Sie etwas mehr sparen . Lässt es auf 401 Bytes fallen.print zlib.decompress('fY9BauhADEP3OcXbueUz1j6X6AUEuogP/xeTpCmUGgxK5iFZ5O85xn++a44ZAHPPPEoAcxMPovEbeBFyddLFyRbyi0i6Hpd5HKqTTVTfLmutOmutdTt0zRwzphoVOCETEkGZLrRTBtSATHFSyEAbhocYqgUmEwTu2r9njhlRalA1Eic2XYZ24ZljJlHu9ce/T8XJvTsFc68+vj6Ndl0EV5d27Wg7Z6R9VKlfXWZHC7alql+XMuACrHTOdCyg9OrSha9ohusoUX116QpQVq+1+uy1VlsFpPrqQjWI5PJIMHRxdQHA6oJqTraw4Aexv8HzqG8iSZR75lFOkpljvh9/G89/'.decode('base64'),-9)
compress[obj]() takes no keyword arguments
compress
Tut nicht,compressobj
nimmt aber zusätzliche Argumente an (obwohl nicht als Schlüsselwörter vor 3.3, müssen Sie die Argumente positionell übergeben). Kompressor erstellen, aufrufencompressor.compress(thedata)
, dann tuncompresseddata = compressor.flush()
Schritten entspricht drei Schrittenzlib.compress
, aber Sie können die Schrittecompressobj
feiner konfigurieren . Der einzige Nachteil ist, dass die Verwendung vonwbits=-9
Mitteln, an die Sie übergeben müssen-9
,decompress
(damit nicht nach Header oder Prüfsumme gesucht werden muss).Python 3 ,
404398 BytesProbieren Sie es online!
Gleicher Cheat wie die Python 2.7-Version , nur optimiert für Py3 erforderlich
bytes
<->str
Konvertierung . Trotz der zusätzlichen Importe immer noch kleiner als der 2.7-Code und der erforderlichen Dekodierung durch Python 3, das die Base85-Kodierung als integrierte Funktion bereitstellt, wodurch die zur Darstellung der komprimierten Daten im druckbaren ASCII-Format erforderliche Größe um 28 Byte verringert wird.Bearbeiten: Rasiert sechs weitere Bytes durch erneutes Komprimieren,
wbits=-9
sodass keine Kopfzeile oder Prüfsumme in die Daten eingefügt wird (im Gegenzug für das Hinzufügen von,-9
Argumentenzlib.decompress
).quelle
Java 8, 719 Bytes
Kann definitiv golfen werden, aber es ist nur ein Anfang und etwas, das andere Java-Golfer schlagen können (versuchen). ;)
Erläuterung:
Probieren Sie es hier aus.
quelle
Brainfuck , 5173 Bytes
Probieren Sie es online!
Wie es funktioniert
Kurz gesagt: Findet den ASCII-Index für jedes Zeichen in der Zeile. druckt es dann aus. Suchen Sie dann den ASCII-Index für eine neue Zeile und drucken Sie diesen aus. Spüle und wiederhole meinen Sohn.
quelle
256 Byte, Computercode (16-Bit x86)
Ich hatte gehofft, dass ich in der Lage bin, mindestens die Lösung für Holzkohle zu übertreffen, aber ich habe es bisher nicht geschafft, mehr daraus zu machen.
Laufen: sparen zu codegolf.com, dosbox das gewünschte Ergebnis setzen Unterbrechungs müssen sehen ,
cs:200
und Dump - Speicher ands:400
der legth30e
... oder Sie können folgendes Stück anfügen, dass es auf stdout DumpDies ist mein dritter Code Golf Eintrag. Vorherige war xor Verschlüsselung .
Nochmals: mit HT-Hexeditor , ohne Compiler , aber mit Strg-a
assemble instruction
.Wie
Dieser brauchte ein bisschen , um es zu machen ...
Ich habe mit einem einfachen Ansatz begonnen, mit einem Quadranten und dem Versuch, ihn zu spiegeln. Das ergab ~ 250 Bytes und nur 2 von 4 Quadranten. Ein großer Teil davon war der erste Quadrant selbst, der 204 Bytes benötigte.
Ich wusste, dass das besser sein kann.
Ich habe schnell überprüft, ob lz4 eine Datei mit 144 Bytes erzeugt (Überschriften überspringen). GZ ergibt ~ 120 Bytes, aber ich wäre offensichtlich nicht in der Lage, Dekomprimierer in 30 oder so Bytes zu erstellen.
Ein weiterer Versuch bestand darin, den ersten Quadranten von Hand zu zeichnen (einschließlich Überspringen, 4-Bit-Codierung usw.). Zusammen mit dem Code ergab dies 164 Bytes (allerdings nur im ersten Quadranten). Schön, aber ich war ziemlich überzeugt, dass ich es besser machen könnte.
Ich habe mir eine Codierung ausgedacht, die 85 Bytes für Daten ergibt. Zusammen mit der Übersetzungstabelle (die noch nicht verwendet wird) und dem Decoder erhielt ich 144 Bytes. NOICE, ich bin = lz4 und habe schon Decoder.
Der nächste Schritt bestand darin, die anfängliche Spiegelung von ~ 250 Versuchen mit dieser zu kombinieren. Dies erforderte einige Datenoptimierungen, verlief jedoch einfacher als erwartet und führte zu 184 Byte.
Ich erkannte, dass ich für die horizontale Spiegelung einige zusätzliche Marker benötige, die die Daten auf 91b und den Code auf 190 Byte (die später in den Papierkorb verschoben wurden) erweitern.
Zusammen mit dem horizontalen Spiegel und der endgültigen Übersetzung habe ich ~ 250 Bytes erhalten.
Ich habe es geschafft, hier und da ein paar Bytes zu essen, musste aber diese hässlichen Zeichen hinzufügen, die falsch gespiegelt sind. Das ergab 259 Bytes ... Das ist schlecht, weil ich Speicher ab 0x200 benutzte und das nicht wiederholen wollte.
Ich habe die Bedingungen in der horizontalen Spiegelung ersetzt, um eine Schleife mit der Übersetzungstabelle zu erstellen, die selbst nicht viel sparte, aber in Kombination mit dem Ändern der Zeichen in Leerzeichen und dem späteren Korrigieren einige Bytes sparte, was zu den endgültigen 256 führte Bytes führte.
Sie können die schöne Galerie sehen, die ich gemacht habe, als ich das hier gemacht habe
Präparation
Wie bei den vorherigen Einträgen stützt sich dieser auch auf die Anfangswerte , wenn auch nicht so sehr wie bei den vorherigen:
Daten überspringen, es gibt folgende 3 Tabellen:
Die Übersetzungstabelle wird für die horizontale Spiegelung verwendet
Die Übersetzungstabelle wird für die endgültige Ersetzung verwendet, um Codes in tatsächliche ASCII-Werte umzuwandeln
Codierte Daten, die Codierung ist ziemlich einfach:
fülle 12 * 17 Bytes mit dem, was zu Leerzeichen wird (8)
"Dekomprimieren" Sie die Daten wie in Tabelle 3 beschrieben. Beachten Sie die Verwendung der geliebten AAM-Anweisung und den Missbrauch von scasb, um Bytes zu überspringen.
Dieser Teil ist ziemlich hässlich, er setzt das Ziel auf 0x400:
Beachten Sie, dass der Spiegel durch den Missbrauch von std / cld
SI
in umgekehrter Reihenfolge erfolgt. Es müssen nur\/()
Zeichen gespiegelt werden, das erledigt xor mit 0x1BF.Dies führt eine horizontale Spiegelung durch, indem Tabelle 1 verwendet wird und wunderbare 1-Byte-Werte verwendet werden XLAT verwendet werden
Dann kommt der langweilige Teil, der 4 "Pixel" repariert, ich werde es von hier aus überspringen, es ist langweilig
Letzter Schritt der Übersetzung zu Ascii.
PUH! Das hat Spaß gemacht.
quelle
JavaScript (ES6),
517...459457456433431418409397392 BytesEnthält eine nachfolgende Leerzeichenzeile sowie ein nachfolgendes Leerzeichen in der ersten Zeile. Einige davon sind immer noch nicht optimal golfen - ich habe viel Zeit darauf verwendet, alles zum Laufen zu bringen.
Ursprünglich basierend auf Traktor53s seitdem aufgegebener 556-Byte-Lösung . Gepostet mit freundlicher Genehmigung .
Aufgabenliste
Finden Sie eine kostengünstigere Methode zur Palindromisierung der Saiten.Versuchen Sie, den RLE-Ersatz zu verbessern.Sehen Sie nach, ob die letzten 4 Ersetzungen in irgendeiner Weise abgespielt werden können.Überlegen Sie, ob die Erstellung des Images in Quartalen zu erheblichen Einsparungen führen würde - ich vermute nicht!quelle
string1[string2.indexOf( char) ]|| char
ist eine Konstruktion, mit der ich versucht habe, aber es nicht geschafft habe, Bytes zu reduzieren. Gut gemacht!JavaScript
556468462448438387379 BytesWeniger Golf
Kompression
Der ursprüngliche Beitrag (556 Byte) verwendete Dezimalstellen, um die Wiederholung eines vorherigen Zeichens im Spinnennetz anzuzeigen. Neuere Versionen komprimieren die linke Hälfte des Webs in 7-Bit-Zeichen, wobei das niedrigstwertige Halbbyte ein Index in einen Zeichensatz ist und drei höherwertige Bits die Anzahl der auszugebenden Zeichen plus 1: -Werte angeben
000
und001
nicht verwendet werden,010
bedeutet 1 Zeichen und111
bedeutet sechs. Diese Konstruktion vermeidet die Erzeugung von Steuerzeichen.Vielen Dank an @Shaggy für Tipps und Tricks, die beim Umschreiben hilfreich sind.
Wie es funktioniert
Der obere linke Quadrant wurde umgeschrieben und enthält nun Platzhalter für die obere und untere Hälfte des Webs:
geben:
die mit komprimiert wurde
Dekompression
Die Dekomprimierung ordnet codierte Zeichen den tatsächlichen Zeichen für jeden Quadranten zu. In Code,
X
ist eine indizierte Zeichenliste, die zwischen oberen und unteren Webabschnitten variiert. Es enthält Werte für "suqh" -Platzhalter und harte Zeichenreflexionen, z. B. zwischen "+" und "O".Codierung
Das Kodieren des mittleren Zeichens ist auf die Verwendung einer einzelnen Zeichenerweiterung beschränkt. Die Zeichensatzreihenfolge ist eingeschränkt, damit während der Komprimierung keine DEL- (0x7F), Grave- (0x60) oder Backslash- (0x5C) Zeichen erzeugt werden.
Dies ist eine späte Aktualisierung als Antwort auf die Aktivität in der Frage.
quelle
.reduce
und.map
was ich nicht konnte. In der Zwischenzeit habe ich den Algorithmus geändert, um 468 Bytes zu erhalten! Schönes Wochenende./// 463 Bytes
Probieren Sie es online!
quelle
Bash, 391 Bytes
Probieren Sie es online!
Ein großes Lob an alle, die es geschafft haben, die Komprimierung von der Stange zu schlagen - das bin ich, der das Handtuch wirft! Ich erkenne die Python-Leute an, die zuerst mit dem ZLIB / GZIP-Ansatz angefangen haben.
quelle
Perl 5
439402 BytesBei diesem Ansatz wird nicht base64 / gzip verwendet, sondern der obere linke Quadrant wird gespiegelt und durch geeignete Substitutionen gekippt
Probieren Sie es online aus
Für Interessierte eine kommentierte Version:
quelle
C #, 484 Bytes
Hinweis: Ich bin nicht zu 100% der Meinung, wie man diese Punkte erzielt. Mit der Kopf- und Fußzeile sind es 544 Bytes.
Ungolfed:
Probieren Sie es online!
quelle
Ruby 1.9.3,
1102763 BytesProbieren Sie es online!
quelle
puts
einer mehrzeiligen Zeichenfolge ~ 790 Byte umfassen. Ihre riesige Zeichenfolge zu scannen und der Code zu verarbeiten endet länger als die naive Lösung ...C #,
401 399 397 396389 BytesSchrieb dieses als Entschuldigung, um Huffman-Codierung zu versuchen
Ungolfed:
Ältere Version mit Kommentaren ungolfed:
Probieren Sie es online!
quelle
while(v>0){
in ein ändernfor
und die ganzen Zahlen undv/=2
in dieses setzen:for(int p=0,l=0;v>0;v/=2){
while
den gleichen Platz einnimmt wie afor
.for(;someCondition;someAction);
vsfor(;someCondition;)someAction;
vswhile(someCondition)someAction;
. Aber insgesamtfor
ist das ja kürzer alswhile
, also benutzefor
ich mich fast immer selber.Python 2 , 395 Bytes
Probieren Sie es online!
quelle
Whitespace ,
47234584 BytesBuchstaben
S
(Leerzeichen),T
(Tabulator) und (Zeilenvorschub) werdenN
nur als Hervorhebungen hinzugefügt.Probieren Sie es online aus .
Erläuterung:
Ich benutze den in meinem Whitespace-Tipp erläuterten Ansatz . Der beschriebene Ansatz lautet wie folgt:
Der ideale konstante Wert war
94
, den ich mit diesem Java-Programm erzeugt habe . Die Verwendung von94
würde ein Whitespace-Programm mit einer Gesamtlänge von 7508 Bytes (7481 + 27 Bytes für die Schleife) oder 5791 Bytes (5764 + 27) ergeben, wenn Duplicate Top (SNS
) bereits überall dort wo zwei gleiche Zeichen benachbart sind.Danach habe ich manuell Copy 1st (
STSSTN
), Copy 2nd (STSSTSN
) und Copy 3rd (STSSTTN
) (1-indiziert) verwendet, wo immer es Bytes speichern würde. Welches kann auch an den Whitespace-Tipps gefunden werden. Was insgesamt zu dem 4584-Byte- Programm führte, das Sie hier sehen.quelle
05AB1E , 204 Bytes
Probieren Sie es online aus.
Stellen Sie sicher, dass es korrekt ist.
Erläuterung:
quelle