この質問にはいくつ回答がありますか?


16

この質問の答えの整数を出力するプログラムまたは関数を書きます。ソリューションは、さらに回答が追加されても機能するはずです。

ブラウザで実行される言語は、このページにいる間、jsコンソールから実行できます。それ以外の場合は、おそらくこのページをダウンロードする必要があります。多言語ソリューション、たとえばwget、ページのingや解析を使用して問題grepありません。コマンドラインと使用したすべてのソースを要約するだけです。

これはコードゴルフです。バイト単位の最短回答が優先されます。

編集:

このページのURLの最大1つのオカレンスが、入力またはソースとしてカウントされないようにしましょう。URL短縮サービス、パラメータ取得などとして保存されたデータはありません。URLの引用符は、必要に応じてカウントされます。入力としてURLを使用しても問題ありません。たとえば/how-many-answers...、URLの一部を削除したい場合は削除できますが、おそらく役に立たないでしょう。


おそらく今これを決定するには遅すぎますが、削除された回答をカウントに含める必要がありますか?
デニス

2
@Dennis削除された回答は表示されないため、誰も心配する必要はありません。必要に応じて数えます。見えないので数えません。
フィリップハグランド

関数はURLを入力として受け入れることができますか?入力はバイトカウントにカウントされますか?
ジョンファンミン

2
@FilipHaglund、コードのURLバイトカウントを合計カウントから減算するか、入力として使用するのが最も理にかなっていると思います勝つチャンスを得るために
ダニエル

1
それ(入力を行う言語によってはさらに多くのバイトが必要になる場合があります)またはURL http://...がソースコードで逐語的に表示される場合にのみ減算できます。
デニス

回答:


14

Javascript + jQuery、23バイト

_=>+$("h2>span").text()

h2>spanチャレンジの本文にある場合、これは失敗しませんか?
マーティンエンダー

3
それを答えに追加するといいかもしれません。:)
マーティンエンダー

1
これを実行可能にすることはできますか(「コードスニペットを実行する」)。
ルドルフジェリン

13
これは、純粋なJavaScriptではないjQueryを使用していることに注意してください(つまり、「JavaScript」とラベル付けしないでください)。言語の上に含まれるライブラリを使用することは、少なくとも明示的に指定する必要があります。jQueryの使用に反対するつもりはありませんが、jQueryを使用する必要があるというだけです。
Makyen

1
@Makyen StackOverflowのネットワークはjQueryを使用しています。質問は、「ブラウザで実行される言語は、このページにいる間はjsコンソールから実行できます」と述べています。jQueryは既にロードされているため、ロードする必要はありません。たぶんそれがjQueryが指定されていない理由です。
イスマエルミゲル


4

Python 2、120バイト、URLなしの79

この挑戦のためにPythonが作られたとは言えません。

import urllib
print[l for l in urllib.urlopen("http://codegolf.stackexchange.com/q/96298")if"answerCount"in l][0][83:-9]

残念ながら、インラインインポートは同じ長さです:(

これ以上のゴルフの助けは大歓迎です!

URL(なんと41バイト-1/3を超えるバイトカウント)を入力として取得できる場合、それは82バイトです。

import urllib
lambda u:[l for l in urllib.urlopen(u)if"answerCount"in l][0][83:-9]

1
使用してみてくださいrequestsライブラリ
noɥʇʎԀʎzɐɹƆ

末尾のスラッシュは省略できると思います...?
TheInitializer

@TheInitializer、そうそうありがとう!
ダニエル

あなたが行を変更した場合import urllibimport urllib as u、あなたは3つのバイトを保存することができます
sonrad10

@ sonrad10、どうですか?同じ長さになりますよね?
ダニエル

3

Javascript、67バイト

alert($(".answers-subheader").children().first().children().html())

これは長すぎる


3

Javascript(ES5)、46 44 40 38 33バイト

_=>parseInt($('#answers').text())

Ismael Miguelのおかげで5バイト節約

注:これは非常に遅く、PPCG-Designユーザースクリプトがある場合は動作しません。


これは、他のJavaScriptの回答と大差ありません。実際、これは単に最適化されていないバージョンです。
イスマエルミゲル

@IsmaelMiguel 1. 他の回答のに記述され、2 。他の回答が使用する隠された要素のに要素を使用します。
ASCIIのみ

けっこうだ。ただし、を使用できますがparseInt($('#answers').text())、これは機能します。これにより、数バイト節約できます。
イスマエルミゲル

3

CJam、15バイト

lg"2>"/1=A>S/0=

このページのURLを入力として期待します。

使い方

l                e# Read a line (the URL) from STDIN.
 g               e# Fetch the resource the URL points to.
  "2>"/          e# Split the source at occurrences of "2>".
       1=        e# Select the second chunk, i.e., everything between the first
                 e# <h2> and the first </h2>.
         A>      e# Discard the first 10 characters (a linefeed and 9 tabs).
           S/0=  e# Split at spaces and select the first chunk.

1

171バイトのbash + 3つのキーlynx

lynx -cfg=<(echo PRINTER:Answercount:grep [0-9]*.Answers %s|less:FALSE:999') http://codegolf.stackexchange.com/questions/96298/how-many-answers-does-this-question-have

カウントカウントが5から6に上昇しました;-)
ローマンチボラ

1
あなたは置き換えることができhttp:// ... http://codegolf.stackexchange.com/q/96298
JungHwan分

171-49 = 122の場合でも絶望的に遅れるので、ゼロリダイレクトを好みました。
ローマンチボラ

1

99バイトsh + curl + jq + stackexchange API

curl -s --compressed api.stackexchange.com/questions/96298/answers?site=codegolf|jq .items\|length

APIを使用して、ページのフォーマットとHTMLに関連する問題を回避することができました。残念ながら、私の60バイトの回答はこの特定のapiクエリの最大のゴルフURLであり、stackexchangeはapiを介した非圧縮データの提供を拒否しているため、クエリの結果を解凍するためのcurlの13バイトです。

実際の「ロジック」は、APIをカールして、この投稿への回答を含むJSON応答を要求することから得られます。これは解凍され、jsonパーサーであるjqにパイプされます。jqは「items」配列を抽出し、その長さを出力します。

APIに答えの数を返すだけで印象的に近づきますが、私が思いつくことから、そこまでの方法を100%得ることはできませんでした。

{"total":}を返す101バイト:

curl -s --compressed api.stackexchange.com/questions/96298/answers?site=codegolf&filter=!)V)MSZJUgX_

APIクエリのフィルターパラメーターは非常に強力ですが、「URLをそのままカールする」ソリューションを提供するには不十分です。ここに妥協点があり、短い応答を取得してから行を数えるか数を抽出することができますが、残念ながらフィルター文字列は設定された長さであり、必要なjqコマンドはすでにより効率的でした。


涼しい。URL短縮機能を使用し、-Lオプションを追加してcurlがリダイレクトに従うようにすることで、多くのバイトを節約できることに注意してください。例えばcurl -sL --compressed bit.ly/2ebw404|jq .total
sergioFC


@デニスそれを知らなかった、ありがとう。
sergioFC

1

PHP、76(コード)+ 41(URL)= 117バイト

preg_match_all('<h2>(.*) answers<span',file_get_contents("http://codegolf.stackexchange.com/q/96298"),$o);
echo $o[0];

1

Java、230 269-41 = 228バイト

interface A{static void main(String[]a)throws Exception{System.out.print(new java.util.Scanner(new java.net.URL("http://codegolf.stackexchange.com/q/96298").openStream()).useDelimiter("\\Z").next().replaceAll("\n|\r","").replaceAll("^.+?\\s+(\\d+) Answers.+$","$1"));}}

(削除されていない回答のみがカウントされます)


0

JavaScript + jQuery(すでにページに含まれています)、20バイト

+$('h2>span').text()

これは、現在のページのコンソールで実行されることを意図したプログラムです F12)。引用符なしで回答数を出力します。Chrome、Firefox、IE11、およびEdgeで動作します。他のブラウザでも動作するはずですが、リストされているブラウザでしかテストしていません。

ここでの他のJavaScriptソリューションとは異なり、ES6矢印関数表記を使用した関数式ではなく、それ自体がプログラムです。また、これらのソリューションとは異なり、実際にはコンソールで出力を(引用符なしで)生成します(出力を生成しない関数式ではなく)。出力の生成は、各ブラウザのコンソールの機能に依存しており、その式が評価された後に式の値が出力されます。

これ<span>は、<h2>要素である親を持つページのみに依存します。親は、テキストコンテンツとして回答数を含む要素です。実験後、この表示されますケースのように、意図的に作成することは表示されません<h2><span>、エディタを使用して、子:すべて明示的に挿入された<span>要素が取り除かれるとノー値下げは、スタック取引所に使用されるように、実際に作成<span>以内<h2>'h2>span'セレクタが一意でなくなるようにページを操作できる場合を誰かが実証できる場合、これを修正する必要があります。

数値ではなく文字列に評価することが許容される場合、

JavaScript + jQuery(すでにページに含まれています)、19バイト

$('h2>span').text()

ただし、これはincludeとして評価されませんが""、テストされたすべてのコンソールで、に囲まれた出力を生成します""。この出力を除外するものとして、質問に対するFilip Haglundのコメントを読みました。


0

R、80バイト

答えは、readLines正規表現を使用して返されるベクトルの検索に基づいています。これは、コメント/回答のテキスト(おそらく自分のもの)によって壊れる可能性があると推測しています。その場合は削除します。また、パターンをゴフリングすることもできますが、それが偽の値を取得する可能性を高めるかどうかはわかりません。

x=readLines(scan(,""));regmatches(x,regexpr("(?<=answerCount\">).*?(?=<)",x,,T))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.