Gunakan konversi basis
Jawaban ini adalah untuk pertanyaan yang ingin seni ASCII yang terdiri dari karakter + |-dan baris baru. Karena hanya ada 5 karakter yang mungkin, ini dapat diperlakukan sebagai nomor basis 5 dan dikonversi ke byte, mengemas 3,45 karakter per byte.
Memanfaatkan keteraturan
Seringkali, data akan memiliki beberapa keteraturan, bahkan jika keteraturan tersebut tidak cukup kuat untuk menggunakan alat khusus seperti mirroring. Misalnya, dalam pertanyaan di atas, output yang diinginkan memiliki baris baru yang secara kasar berjarak merata di sepanjang tes, karena teksnya kira-kira persegi panjang. Saya mengeksploitasi ini untuk mempersingkat kode saya, dengan menggunakan Pyth's split menjadi fungsi n pieces, kemudian bergabung di baris baru.
Ketahui alat Anda, dan pilih yang tepat untuk pekerjaan itu.
Alat pemrosesan teks yang paling kuat dan efisien yang saya tahu adalah:
Mesin Regex:, ///Retina, Perl, dalam urutan power / conciseness tradeoff.
Gunakan jika hal yang ingin Anda lakukan dapat dengan hati-hati dijelaskan dalam penggantian regex, seperti jawaban ini
Alat pemrosesan teks yang tidak jelas: gema, dll. (Saya yakin ada yang lain, tapi terlalu kabur)
Gunakan jika mereka memiliki fitur yang persis Anda butuhkan, yang tidak dimiliki oleh yang lain. Seperti dalam pertanyaan ini , dengan pencocokan rekursif gema.
Bahasa golf kode umum: CJam, Pyth, dll.
Gunakan jika Anda mengeksploitasi beberapa kompleksitas yang cukup halus sehingga tidak ada alat lain yang dapat melakukan pekerjaan itu atau hanya melakukan pekerjaan yang lebih pendek.
Coba banyak pendekatan
Ini berlaku dalam setiap pertanyaan kode-golf, terutama di sini. Anda tidak akan tahu apakah keteraturan dapat dieksploitasi hingga Anda mencobanya. Mungkin dalam berbagai bahasa.