Verwenden Sie die Basiskonvertierung
Diese Antwort bezog sich auf eine Frage, die ASCII-Kunst wollte, die aus Zeichen + |-
und Zeilenumbrüchen bestand. Da es nur 5 mögliche Zeichen gibt, können diese als Basis-5-Zahl behandelt und in Bytes umgewandelt werden, wobei 3,45 Zeichen pro Byte gepackt werden.
Regelmäßigkeiten ausnutzen
Häufig weisen die Daten einige Regelmäßigkeiten auf, auch wenn diese Regelmäßigkeiten nicht stark genug sind, um bestimmte Tools wie das Spiegeln zu verwenden. Zum Beispiel hatte in der obigen Frage die gewünschte Ausgabe Zeilenumbrüche, die während des Tests ungefähr gleichmäßig verteilt waren, da der Text ungefähr rechteckig war. Ich habe dies ausgenutzt, um meinen Code zu verkürzen, indem ich Pyths in n Teile aufgeteilte Funktion verwendete und mich dann in Zeilenumbrüchen einfügte.
Kennen Sie Ihre Werkzeuge und wählen Sie das richtige für den Job.
Die leistungsfähigsten und effizientesten Textverarbeitungswerkzeuge, die ich kenne, sind:
Regex-Motoren:, ///
Retina, Perl, in der Reihenfolge des Kompromisses zwischen Leistung und Prägnanz.
Verwenden Sie diese Option, wenn das, was Sie tun möchten, in regulären Substitutionen genau beschrieben werden kann, z. B. in dieser Antwort
Obskure Textverarbeitungswerkzeuge: Gema usw. (Ich bin sicher, es gibt andere, aber sie sind zu dunkel)
Verwenden Sie, wenn sie eine Funktion haben, die genau das ist, was Sie brauchen, die sonst nichts hat. Wie in dieser Frage , mit Gemas rekursivem Matching.
Allgemeine Code-Golfsprachen: CJam, Pyth usw.
Verwenden Sie diese Option, wenn Sie ein so komplexes Programm ausnutzen, dass es von keinem anderen Tool ausgeführt wird, oder wenn es nur kürzer ist.
Probieren Sie viele Ansätze
Dies gilt in jeder Code-Golf-Frage, insbesondere aber hier. Sie werden nicht wissen, ob eine Regelmäßigkeit ausnutzbar ist, bis Sie es ausprobieren. Möglicherweise in mehreren Sprachen.