Использовать базовое преобразование
Этот ответ был на вопрос, который хотел искусство ASCII, которое состояло из символов + |-
и новых строк. Поскольку существует только 5 возможных символов, их можно рассматривать как базовое число 5 и преобразовывать в байты, упаковывая 3,45 символа на байт.
Эксплуатировать закономерности
Часто данные имеют некоторые закономерности, даже если эти закономерности недостаточно сильны, чтобы использовать определенные инструменты, такие как зеркальное отображение. Например, в приведенном выше вопросе желаемый вывод имел новые строки, примерно равномерно распределенные по всему тесту, поскольку текст был примерно прямоугольным. Я воспользовался этим, чтобы сократить свой код, используя функцию разбиения Pyth на n частей, а затем присоединяясь к новым строкам.
Знайте свои инструменты и выберите правильный для работы.
Самые мощные и эффективные инструменты обработки текста, которые я знаю:
Движки Regex: ///
Retina, Perl, в порядке компромисса между мощностью и краткостью.
Используйте, если то, что вы хотите сделать, может быть сознательно описано в подстановках регулярных выражений, таких как этот ответ
Неясные инструменты обработки текста: гема и т. Д. (Я уверен, что есть и другие, но они слишком неясны)
Используйте, если у них есть функция, которая именно то, что вам нужно, что больше ничего не имеет. Как в этом вопросе , с рекурсивным соответствием гемы.
Общие коды языков игры в гольф: CJam, Pyth и др.
Используйте, если вы используете какой-то сложный набор тонкостей, чтобы никакой другой инструмент не справлялся с работой или он просто выполнял работу короче.
Попробуйте много подходов
Это относится к каждому вопросу о код-гольфе, но особенно здесь. Вы не узнаете, пригодна ли регулярность, пока не попробуете. Возможно на нескольких языках.