इस प्रश्न के कितने उत्तर हैं?


16

एक प्रोग्राम या एक फ़ंक्शन लिखें जो इस प्रश्न के उत्तर के पूर्णांक संख्या को आउटपुट करता है। आपके समाधान को अभी भी काम करना चाहिए क्योंकि अधिक उत्तर जोड़े जाते हैं।

ब्राउज़र में चलने वाली भाषाएँ इस पृष्ठ पर रहते हुए js कंसोल से चलाई जा सकती हैं। अन्यथा, आपको शायद यह पृष्ठ डाउनलोड करना होगा। बहु-भाषा समाधान, उदाहरण wgetके लिए पृष्ठ को पसंद करते हैं और इसका उपयोग करके पार्स करना grepठीक है। बस कमांड लाइन और उपयोग किए गए सभी स्रोत का योग करें।

यह कोड गोल्फ है; बाइट्स जीत में सबसे कम जवाब।

संपादित करें:

आइए इस पृष्ठ के url के अधिकांश एक-एक अंश को इनपुट या स्रोत के रूप में न गिनने दें। कोई url shorteners, कोई डेटा संग्रहीत नहीं किया जाता है जैसे पैरामीटर आदि, url के आसपास उद्धरण, यदि आवश्यक हो, तब भी गणना करें। Url को इनपुट के रूप में लेना भी ठीक है। यदि आप url के कुछ भाग को हटाना चाहते हैं, जैसे /how-many-answers..., आप कर सकते हैं, लेकिन यह शायद आपकी मदद नहीं करता है।


शायद अब इस पर शासन करने के लिए बहुत देर हो चुकी है, लेकिन क्या गणना में हटाए गए उत्तर शामिल हैं?
डेनिस

2
@ डेनिस मैं हटाए गए उत्तर नहीं देख सकता, इसलिए मैं कहूंगा कि किसी को भी उनके बारे में चिंता करने की ज़रूरत नहीं है। यदि आप चाहते हैं तो उन्हें गिनें। जब से मैं उन्हें नहीं देख पाऊंगा, मैं उनकी गिनती नहीं करूंगा।
फिलीप हगलुंड

क्या फ़ंक्शन url को इनपुट के रूप में स्वीकार कर सकता है? क्या इनपुट तब बायटेकाउंट की ओर गिना जाएगा?
जुंगह्वान मिन ऑक्ट

2
@ फीलिपहगलुंड, मुझे लगता है कि कोड में URL बाइट काउंट होने के लिए यह सबसे ज्यादा मायने रखेगा, इसे कुल गिनती से घटाया जाएगा या इसे इनपुट के रूप में लिया जाएगा क्योंकि यह उस तरह की भाषाओं के लिए असंभव है जो ब्राउज़र में नहीं चलती हैं जीतने का मौका है
डैनियल

1
हालांकि (इनपुट लेने वाली कुछ भाषाओं में और भी अधिक बाइट्स की आवश्यकता हो सकती है) या केवल http://...स्रोत कोड में URL शब्दशः दिखाई देने पर उसे घटाने की अनुमति देता है।
डेनिस

जवाबों:


14

जावास्क्रिप्ट + jQuery, 23 बाइट्स

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

h2>spanचुनौती के शरीर में है, तो यह विफल नहीं हो सकता ?
मार्टिन एंडर

3
हो सकता है कि फिर उस जवाब में जोड़ दें। :)
मार्टिन एंडर

1
क्या इसे चलाने योग्य बनाया जा सकता है ("रन कोड स्निपेट")?
रुडोल्फजेलिन

13
ध्यान दें कि यह jQuery का उपयोग करता है जो शुद्ध जावास्क्रिप्ट नहीं है (अर्थात इसे "जावास्क्रिप्ट" के रूप में लेबल नहीं किया जाना चाहिए)। एक पुस्तकालय का उपयोग करना जो भाषा के शीर्ष पर शामिल है, कम से कम स्पष्ट रूप से कहा जाना चाहिए। मैं jQuery का उपयोग करने के खिलाफ बहस नहीं कर रहा हूँ, बस यह कहा जाना चाहिए।
मकेन

1
@Makyen StackOverflow का नेटवर्क jQuery का उपयोग करता है। प्रश्न कहता है "ब्राउज़र में चलने वाली भाषाएँ इस पृष्ठ पर रहते हुए js कंसोल से चलाई जा सकती हैं।" jQuery को लोड नहीं करना है, क्योंकि यह पहले से ही था। शायद इसलिए jQuery निर्दिष्ट नहीं है।
इस्माइल मिगुएल


4

पायथन 2, 120 बाइट्स, 79 w / o URL

मैं नहीं कह सकता कि इस चुनौती के लिए अजगर बनाया गया था।

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 usingzɐɹƆ

मुझे लगता है कि पीछे चल रहे स्लैश को छोड़ा जा सकता है ...?
TheInitializer

@ TheInitializer, ओह हाँ धन्यवाद!
डैनियल

यदि आप लाइन import urllibको बदलते हैं import urllib as uतो आप 3 बाइट्स बचा सकते हैं
sonrad10

@ sonrad10, ऐसा कैसे? यह समाप्त होता है एक ही लंबाई, नहीं?
डैनियल

3

जावास्क्रिप्ट, 67 बाइट्स

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

यह रास्ता बहुत लंबा है


3

जावास्क्रिप्ट (ईएस 5), 46 44 40 38 33 बाइट्स

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

5 बाइट्स इस्माइल मिगुएल के लिए धन्यवाद बचा लिया

नोट: यह बहुत धीमा है, और अगर आपके पास PPCG- डिज़ाइन उपयोगकर्तास्क्रिप्ट है तो यह काम नहीं करेगा।


यह अन्य जावास्क्रिप्ट उत्तर की तुलना में बहुत अलग नहीं है । वास्तव में, यह केवल इसका अन-ऑप्टिमाइज़्ड संस्करण है।
इस्माइल मिगुएल

@IsmaelMiguel 1. यह दूसरे के पहले लिखा गया था , और 2. यह छिपे हुए दूसरे उत्तर का उपयोग करने से पहले तत्व का उपयोग करता है।
एएससीआईआई-केवल

काफी उचित। लेकिन आप उपयोग कर सकते हैं parseInt($('#answers').text()), जो काम करेगा। यह आपको कुछ बाइट्स बचाता है।
इस्माइल मिगुएल

3

सीजेएम, 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 बाइट्स बैश + 3 की चाट

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 तक बढ़ गया है ;-)
रोमन Czyborra

1
आप बदल सकते हैं http:// ... साथhttp://codegolf.stackexchange.com/q/96298
JungHwan मिन

मैंने शून्य पुनर्निर्देशन को प्राथमिकता दी क्योंकि मैं 171-49 = 122 के साथ अभी भी निराशाजनक रूप से पीछे रहूंगा।
रोमन Czyborra

1

99 बाइट्स श + कर्ल + jq + स्टैकटेक्चेंज एपीआई

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

एपीआई का उपयोग करते हुए, मैं पृष्ठ स्वरूपण और HTML से संबंधित मुद्दों से बचने में सक्षम था। दुर्भाग्य से, मेरे उत्तर के 60 बाइट्स इस विशेष एपीआई क्वेरी के लिए अधिकतम गोल्फ वाले यूआरएल हैं, और क्वेरी के परिणामस्वरूप अनज़िप करने के लिए कर्ल के लिए एक और 13 बाइट्स हैं, क्योंकि स्टेक्सएक्सचेंज एप के माध्यम से असम्पीडित डेटा की सेवा करने से इनकार करते हैं।

वास्तविक "तर्क" इस पोस्ट के उत्तरों के साथ एक जवाबी उत्तर के लिए पूछने के लिए एपीआई को कर्लिंग करने से आता है। इसे अनजिप किया जाता है और फिर jq में पाइप किया जाता है, एक json parser, जो "आइटम" सरणी को निकालता है और इसकी लंबाई को आउटपुट करता है।

आप एपी के पास केवल उत्तरों की संख्या वापस करने के लिए प्रभावशाली रूप से पास हो सकते हैं, लेकिन जो मैं आपके साथ आ सकता हूं, वहां से 100% नहीं मिल सकता है, और पास होने से अधिक बाइट्स खर्च होंगे जो कि इसे jq से गुजरने की तुलना में अधिक होगा।

101 बाइट्स वापस करने के लिए {"कुल":}:

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

एपीआई प्रश्नों में फ़िल्टर पैरामीटर बहुत शक्तिशाली है, लेकिन यह "सिर्फ कर्ल ए आर एल" समाधान प्रदान करने के लिए कम है। यहां एक मध्य मैदान हो सकता है, जहां आप एक छोटी प्रतिक्रिया प्राप्त कर सकते हैं और फिर बस लाइनों को गिन सकते हैं या संख्या निकाल सकते हैं, लेकिन दुर्भाग्य से फ़िल्टर स्ट्रिंग एक निर्धारित लंबाई है, और आवश्यक jq कमांड पहले से ही अधिक कुशल थी।


ठंडा। ध्यान दें कि आप URL शॉर्टनर का उपयोग करके कई बाइट्स बचा सकते हैं और कर्ल को पुनर्निर्देश का पालन करने के लिए -L विकल्प जोड़ सकते हैं; उदाहरण के लिएcurl -sL --compressed bit.ly/2ebw404|jq .total
सर्जियोएफसी

1
@sergioFC URL
डेनिस

@ डेनिस नहीं जानता था कि, धन्यवाद।
सर्जियोएफसी


1

जावा, २३० 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

जावास्क्रिप्ट + jQuery (पहले से ही पृष्ठ में शामिल), 20 बाइट्स

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

यह एक कार्यक्रम है जिसे वर्तमान पृष्ठ के लिए कंसोल में निष्पादित किया जाना है (इसके साथ खोला गया F12)। यह उद्धरण चिह्नों के बिना, उत्तरों की संख्या को आउटपुट करता है। यह क्रोम, फ़ायरफ़ॉक्स, IE11 और एज में काम करता है। इसे अन्य ब्राउज़रों में काम करना चाहिए, लेकिन मैंने केवल उन सूचीबद्ध लोगों में इसका परीक्षण किया है।

यहां अन्य जावास्क्रिप्ट समाधानों के विपरीत, यह ES6 तीर फ़ंक्शन नोटेशन का उपयोग करके फ़ंक्शन अभिव्यक्ति के बजाय स्वयं एक कार्यक्रम है । इसके अलावा उन समाधानों के विपरीत, यह वास्तव में उत्तर की संख्या के साथ कंसोल में आउटपुट (उद्धरण के बिना) पैदा करता है (केवल एक फ़ंक्शन अभिव्यक्ति होने के बजाय जो कोई आउटपुट नहीं पैदा करता है)। उत्पादन उत्पादन प्रत्येक ब्राउज़र के कंसोल में सुविधा पर निर्भर करता है कि किसी अभिव्यक्ति का मूल्य उस अभिव्यक्ति के मूल्यांकन के बाद आउटपुट है।

यह केवल <span>माता-पिता के साथ पृष्ठ पर निर्भर करता है जो कि एक <h2>तत्व है जो पाठ सामग्री के रूप में उत्तरों की संख्या से युक्त है। प्रयोग के बाद, यह मामला प्रतीत होता है, और यह संपादक का उपयोग करके <h2>एक <span>बच्चे के साथ जानबूझकर पैदा करना संभव नहीं दिखता है : सभी स्पष्ट रूप से सम्मिलित <span>तत्व छीन लिए गए हैं और कोई मार्कडाउन नहीं है , जैसा कि स्टैक एक्सचेंज में उपयोग किया जाता है, एक के <span>भीतर एक वास्तविक बनाता है <h2>। यदि कोई ऐसे मामले को प्रदर्शित कर सकता है, जहां पेज को इस तरह से हेरफेर किया जा सकता है'h2>span' चयनकर्ता अब अद्वितीय नहीं है, तो इसे संशोधित करने की आवश्यकता होगी।

यदि एक संख्या के बजाय एक स्ट्रिंग का मूल्यांकन स्वीकार्य है, तो

जावास्क्रिप्ट + jQuery (पहले से ही पृष्ठ में शामिल), 19 बाइट्स

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

हालाँकि, जबकि यह शामिल करने के लिए मूल्यांकन नहीं करता है "", सभी परीक्षण किए गए कंसोल में यह आउटपुट उत्पन्न करता है जो भीतर संलग्न है ""। मैंने इस आउटपुट को शामिल करने के रूप में फ़िलिप हगलुंड की टिप्पणियों को प्रश्न पर पढ़ा।


0

आर, 80 बाइट्स

उत्तर readLinesनियमित अभिव्यक्तियों का उपयोग करके लौटे वेक्टर की खोज पर आधारित है । मैं अनुमान लगा रहा हूं कि इसे टिप्पणियों / उत्तरों में पाठ द्वारा तोड़ा जा सकता है (संभवतः मेरा भी)। हटा देंगे अगर ऐसा है। इसके अलावा पैटर्न को भी प्रभावित किया जा सकता है लेकिन निश्चित नहीं है कि इससे गलत मूल्य मिलने की संभावना बढ़ जाएगी।

x=readLines(scan(,""));regmatches(x,regexpr("(?<=answerCount\">).*?(?=<)",x,,T))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.