Мартин создал хороший фрагмент, который можно использовать для отслеживания результатов при ответах на вызовы. Это здорово и все, но не лучше ли было бы следить за этим самостоятельно?
Создайте программу, которая сравнивает количество байтов само по себе с остальными ответами на этот вопрос и возвращает «Я отвечаю с номером n».
Правила:
Счетчик байтов в вашем собственном ответе может быть жестко задан в коде
Функция может принимать URL в качестве входных данных или может быть жестко закодирована. Символы для URL не будут учитываться в счетчике байтов, поэтому нет необходимости использовать сокращатель URL.
URL-адреса к ответам не могут быть жестко закодированы
Баллы за ответы можно найти в заголовке (так же, как и фрагмент Мартина).
Заголовок ответа должен иметь правильный формат (описан ниже).
Если есть возможность запустить программу онлайн, поделитесь ссылкой на онлайн-компилятор (или фрагмент кода, который можно выполнить из ответа). Если это невозможно, пожалуйста, покажите, как вызывать функцию, и покажите вывод вашего собственного компилятора (во время публикации ответа. Вам не нужно обновлять его, если, конечно, вы этого не хотите).
Вы должны фактически сравнить ответ с другими ответами на этот вопрос. Просто написание скрипта
I'm answer number 1.
на каком-то языке не законно.Если у других ответов такое же количество байтов, как у вас, вы можете выбрать, хотите ли вы быть лучшим или худшим из них.
Заголовок должен быть отформатирован:
# Language Name, N bytes
Зачеркнутые и т. Д. Использовать нельзя, поэтому, если размер кода изменился, покажите его жирным шрифтом под заголовком или укажите его каким-либо другим способом.
Выход должен быть I'm answer number n.
, где число n
- позиция (завершающий символ новой строки / пробелы в порядке). Таким образом, самый короткий ответ будет выводить: «Я отвечаю № 1», второй будет «Я отвечаю № 2». и т.п.
Это код гольф, поэтому самый короткий ответ в байтах победит.
Ответы:
Perl, 107 байт
Немного меньше в гольф:
Образец использования
источник
Python 2, 145 байт
Выходной с 2015-10-10 17:30:00 UTC:
Я не учел ни одного URL-адреса своей оценки, пожалуйста, прокомментируйте, сколько я должен добавить к нему. Имеет собственный счет в жестком коде, предполагает, что он уже опубликован. Сломается, если будет опубликовано более 99 ответов.
источник
AutoIt, 175 байт
(202 байта - 27 для URL)
Выходной от 2015-10-09 17:47:00 UTC:
источник
l
вместо него есть « а»I
, поэтому я неправильно его прочитал. Единственная причина, по которой я это понял, это просмотр статьи в Википедии с засечками.JavaScript (ES7), 149 байт
283 байта - 134 для URL. Я никогда не использовал HTTP-запросы раньше, но здесь идет ...
Успешно протестировано в Firefox 41.
Сначала он просматривает заголовки всех ответов, чтобы найти их количество байтов, затем он находит первую позицию с числом байтов
243149. В настоящее время он настроен на проверку только первых 100 ответов, и прекратит работу, если кто-то получит меньше 100. байт, но пока работает. ;)Спасибо @GeorgeReith за гораздо более короткую технику. Старая версия с использованием AJAX (243 байта):
источник
If other answers have the same number of bytes as your own, you can choose if you want to be best or worse of them.
Это все еще в основном посте; я что-то неправильно понимаю?PHP, 158
159164байтов127 байтов из
'http://api.stackexchange.com/2.2/questions/60204/answers?pagesize=99&order=desc&sort=votes&site=codegolf&filter=!--pn9sqW9y0T'
не подсчитанныхОтформатированная версия с негольфированными строками:
$h
Последовательности символов, подобные
¶Ø’ßž‘Œˆšß‘Š’šß
действительным именам констант в PHP, но поскольку константы не существуют, рассматриваются как строковые литералы.~
инвертирует их, в этот"I'm answer number "
(сохраняя байт для одной кавычки каждый)использование
источник
$a
переменная необходима? Почему бы тебе просто не сделать$h[]=json_decode(…)[items][+$i++][body]
? Что это за странные персонажи, кстати?" "
(3 байта) может быть уменьшено до~ß
(2 байта)json_decode
и толькоsplit
на':'
что-то, например: codepad.org/7rZg06byJavascript (ES6), 186 байт
(335 - 149 байт для URL)
источник
\x3C
вместо<
?Awk, 153 байта
Это должно быть сохранено в файл
a
и работать так:Я вычитаю 68 байтов для
http://codegolf.stackexchange.com/questions/60204/how-are-you-doing
и добавляю 13 к коду для начальной загрузкиawk -v u=
и-f a
.Менее гольф, это может быть еще короче:
Он всегда предпочитает себя в связи. Количество байтов жестко закодировано в каждом.
Более гольф-версия имеет скрипт, вызывающий себя и выводящий значение выхода через систему. В каждом случае только значения ниже жестко заданного приращения значения
r
, которое затем должно быть откорректировано,1
если оно является ведущим.Это не правильно найти байт , если есть пробелы между
bytes
и</h1>
и , возможно , ряд других случаев , я не учел.По состоянию на
Sun Oct 11 05:17:51 UTC 2015
это дает:источник
GNU Awk, 156 байт
(Вдохновленный n0741337 «с раствором Awk .)
Этот делает все сам, без запуска внешней команды.
Ожидает имя хоста и путь как отдельные значения. Учитывая, что они доступны бесплатно, надеюсь, это не нарушает правила.
Образец прогона:
источник