Мы определяем пробел как любой из трех символов: tab (0x09), символ новой строки (0x0A) или пробел (0x20).
Для этого вам нужно написать две программы или функции на одном языке программирования, которые выполняют следующие задачи:
Подсчитайте пробельные символы в заданной строке. Например, вход
123 -_- abc def
вернул бы 7 (при условии, что нет завершающего символа новой строки).
Разбить заданную строку при последовательных пробелах. Если строка начинается или заканчивается пробелом, пустые строки не должны возвращаться на концах. Например, тот же вход
123 -_- abc def
вернется
["123", "-_-", "abc", "def"]
.
В любом случае вы можете получить ввод через STDIN, аргумент командной строки или аргумент функции, чтобы вернуть результат или распечатать его как STDOUT. Для второй программы, если вы решите печатать в STDOUT, напечатайте каждую строку в отдельной строке без кавычек.
Для обеих программ вы можете предположить, что вход содержит только печатные ASCII (от 0x20 до 0x7E) и пробелы.
Теперь вот подвох:
- Если все пробелы удалены из обеих программ / функций, результирующие строки должны быть идентичными. То есть ваши два представления могут отличаться только количеством и расположением пробельных символов.
- Ни одна из программ / функций не может содержать строковые или регулярные литералы (символьные литералы в порядке, если у вашего языка есть обозначенный тип символов).
- Ни одна из программ / функций не может содержать никаких комментариев.
- Вы не должны читать исходный код программы, прямо или косвенно.
Это код гольф. Ваша оценка - это сумма размеров обоих решений (в байтах). Самый низкий балл побеждает.
Leaderboards
Следующий фрагмент стека генерирует как регулярную таблицу лидеров, так и обзор победителей по языкам. Поэтому, даже если ваш предпочтительный язык не позволяет вам выиграть весь вызов, почему бы не попытаться занять место во втором списке? Мне было бы очень интересно посмотреть, как люди решают эту проблему на разных языках!
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
есть общий размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Вы также можете включить отдельные подсчеты до общего подсчета, например,
# Python 2, 35 + 41 = 76 bytes
Последний номер, который не вычеркнут, будет использоваться фрагментом.
<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>site = 'meta.codegolf',postID = 5314,isAnswer = true,QUESTION_ID = 42253;jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)<\\/code><\/pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>