Напишите программу, которая выводит содержимое первого HTML- <code>...</code>
блока ответа на этот вопрос, который находится чуть выше вашего, когда ответы сортируются по голосам. Выведите, Top!
если вы лучший ответ.
Игнорировать ответы с отрицательным голосом или без <code>...</code>
тегов. Источник вашей программы должен появиться в первом <code>...</code>
блоке вашего поста. Эти блоки создаются автоматически, когда вы use backticks
или
indent things with 4 spaces.
Это код-гольф, ответ с наименьшим количеством символов выигрывает.
Дополнительные правила (обновлено)
- Отвечайте на любом языке программирования, который вы хотите, но если вы отвечаете несколько раз, используйте разные языки.
- Вы не можете жестко закодировать свой вывод. Способность вашей программы работать правильно не должна зависеть от подсчета голосов или от того, какой ответ выше. Если распределение голосов кардинально изменилось, ваша программа все равно должна правильно вывести код ответа над ним.
- Вы можете жестко запрограммировать свою программу для поиска себя на этой странице (чтобы найти следующую наивысшую оценку) с помощью некоторого уникального свойства вашего ответа, такого как имя пользователя (если у вас есть только один ответ) или прямая ссылка ответа.
- Если два ответа имеют равные голоса, вы все равно должны использовать тот, который находится чуть выше вашего (который, я считаю, будет самым новым).
- В
<code>...</code>
вашем ответе может быть несколько блоков, но первый должен содержать источник вашей программы.
inline code spans
это просто<code></code>
, но правильные блоки кода есть<pre><code>stuff</code></pre>
.Ответы:
Javascript + JQuery (
928664 символа)Чтобы проверить, откройте Dev Tools на этой странице (обычно F12) и запустите мой код!
Этот Javscript должен быть запущен с помощью консоли с этой страницы (и только с этой страницы).
Короче говоря, ей даже не нужна полоса прокрутки!
По сути, он находит мой ответ по идентификатору, а затем получает два узла вперед (пропуская ссылку привязки). Если этого не существует, я должен быть на вершине. Затем он копает до первого
code
элемента и получает его.innerHTML
.Приятно то, что SE по умолчанию использует jQuery, поэтому я получаю это преимущество, даже не пытаясь.
источник
alert($("code",$("#answer-34767").prev().prev()).html()||"Top!")
.PHP
666611593588580 символовИзменить: Используется даже меньший URL, чем ранее из tinyurl.
Изменить: После комментария на другой ответ я использовал int, а не логическое. Также необходимо исправить ошибку, которая стала очевидной, но исправлена.
Вот мой код
Я уверен, что это можно улучшить с помощью DOMXPath и узлов. Однако я вполне доволен этим. Я не мог решить, что делать в моем случае, это единственный ответ, но с -ve баллами, поэтому игнорируется. Однако другой ответ был опубликован, так что больше не проблема.
Я также использовал tinyurl, чтобы сократить URL, сохраняя много символов.
Я надеюсь тебе это понравится,
Павел.
PS Это не будет работать в кодовой панели, поэтому не может показать скрипку.
Изменить: еще 5 сохранено с изменением тегов php
Вы можете видеть, что это работает здесь на домене, которым я в настоящее время не пользуюсь (поэтому я не просто пытаюсь скрытую ссылку). Это не постоянная ссылка, но в настоящее время доступна.
источник
<?
не так<?php
) и не включать закрывающий тег. Это должно оставить вас еще несколько символов.Дротик
412403Ungolfed (ну, с символами новой строки и ведущими пробелами)
источник
Delphi (
688 873 859 848840)Я все еще попытаюсь сбрить некоторых персонажей, но это сработает :)
Изменить: вместо того, чтобы сделать его короче, я сделал его длиннее: P
Я забыл добавить игнорирование ответов, когда у него отрицательный счетчик голосов или нет блоков кода.
Я просто обновляю версию без гольфа во время редактирования.
Спасибо @manatwork за предложенные правки, которые сняли 8 символов.
Гольф версия:
Безголовая версия:
источник
http://codegolf.stackexchange.com/questions/34705/output-the-answer-above-yours/34718#34718
можно изменить наhttp://codegolf.stackexchange.com/q/34718
, что позволит сохранить немало символов.TStrings
взамен. (Но сохраняйте экземпляр сTStringList
.)byte
вместоboolean
.Питон - 280
Это мой первый Codegolf, так что я надеюсь, что этого достаточно!
Изменить: Спасибо за советы! Сейчас это выглядит немного лучше.
источник
for i,m
,m==open
и т.д.).http://codegolf.stackexchange.com/q/34705/14509
определенно будет работать.wc -c $filename
. Если ваш редактор добавляет завершающий символ новой строки к файлам (возможно, это так и есть), вы можете вычесть один из них, чтобы получить окончательный результат.Mathematica - 159
Первый раз занимаюсь разбором в Mathematica
источник
Рубин 283 + 17 = 300
Это удается независимо от того, как мало голосов получает этот ответ, и не важно, есть ли вторая (или пятнадцатая) страница ответов или нет. Он использует API данных.
должен быть запущен с
ruby -rnet/http -rjson
(следовательно, +17)ungolfed:
Изменения
300 удаленных паренов в символе regex
302 начальный коммит
источник
PHP 135
Редактировать: сокращение URL-адрес lrn производит самый короткий URL :)
RegEx сопоставляет привязку перед каждым ответом (вместе с идентификатором ответа) и содержимое внутри первого
<code>
тега.U
Флаг вызываетU
ngreedy режима иs
флаг делает.
спички новых линий (очень горсть). Я не волнуюсь, если это совпадает с чем-то другим, поскольку ответы не отображаются, поэтому никто не может вставить<
литерал в исходный код страницы.После того, как я получу все ответы
$m[2]
и их идентификаторы$m[1]
, я просто использую,echo
чтобы напечатать ответ выше моего, так как он находится в$m[2][array_search(34786,$m[1])-1]
, или «Top!», Если мой ответ в конце концов окажется первым :)Мне нравится тот факт, что в PHP троичный оператор может использоваться как оператор короткого замыкания
?:
источник
Delphi,
461 байт, 553 байтТеперь обрабатывает несколько страниц тоже!
Golfed:
(немного) Неутолкнутый:
Как запустить:
источник
PHP -
412-422-416-252- 248:Все еще в стадии разработки, я ничего не сделал в отношении нескольких страниц (и никто другой?)
Я получил падение в 200 символов, вырезав много лишних очков, зачем искать объекты, когда я могу просто найти их положение?
Это тоже мой первый кодовый гольф! Я счастлив, что сделал это в 200-х и используя методы DOM. Благодаря комментариям я просто сбрил еще 4 персонажа.
Я хотел сделать что-то вроде jquery / jscript в отношении обхода dom, и все еще работаю над уменьшением этого. Может быть, я мог бы уйти с поиска «asi» в качестве моего имени пользователя?
Гольф:
отформатирован:
ура
источник
new DOMDocument()
и закрытие?>
могут быть опущены в PHP.Питон 3,
197191 байтПравила не говорят, что я не могу использовать API и что я не могу использовать сокращатель URL.
https://tinyurl.com/hdemk76
расширяется доhttps://api.stackexchange.com/2.2/questions/34705/answers?order=desc&sort=votes&site=codegolf&filter=withbody&pagesize=100
Это работает, только если оно входит в топ-100 ответов, отсортированных по голосам.источник
https://tinyurl.com/hdemk76
наhttp://bit.ly/2hN8TKV