Utiliser la conversion de base
Cette réponse était à une question qui voulait de l'art ASCII composé des personnages + |-
et des nouvelles lignes. Puisqu'il n'y a que 5 caractères possibles, ceux-ci peuvent être traités comme un nombre de base 5 et convertis en octets, emballant 3,45 caractères par octet.
Exploiter les régularités
Souvent, les données auront certaines régularités, même si ces régularités ne sont pas assez fortes pour utiliser des outils spécifiques tels que la mise en miroir. Par exemple, dans la question ci-dessus, la sortie souhaitée avait des nouvelles lignes à peu près également espacées tout au long du test, car le texte était à peu près rectangulaire. J'ai exploité cela pour raccourcir mon code, en utilisant la fonction de scission de Pyth en n morceaux, puis en se joignant à des nouvelles lignes.
Connaissez vos outils et choisissez celui qui vous convient.
Les outils de traitement de texte les plus puissants et efficaces que je connaisse sont:
Moteurs Regex: ///
Retina, Perl, par ordre de compromis puissance / concision.
À utiliser si la chose que vous voulez faire peut être décrite consciencieusement dans des substitutions d'expression régulière, telles que cette réponse
Outils de traitement de texte obscurs: gema, etc. (je suis sûr qu'il y en a d'autres, mais ils sont trop obscurs)
Utilisez-les s'ils ont une fonctionnalité qui correspond exactement à ce dont vous avez besoin, que rien d'autre n'a. Comme dans cette question , avec l'appariement récursif de gema.
Langages de golf à code général: CJam, Pyth, etc.
À utiliser si vous exploitez un complexe suffisamment subtil pour qu'aucun autre outil ne fasse le travail ou qu'il le fasse plus court.
Essayez de nombreuses approches
Cela s'applique à chaque question de code-golf, mais surtout ici. Vous ne saurez pas si une régularité est exploitable avant de l'essayer. Peut-être en plusieurs langues.