স্ট্যাকওভারফ্লোতে কতটা অনুগ্রহ রয়েছে?


33

টাস্ক:

আপনি একটি আশ্চর্যজনক প্রোগ্রামার এবং স্ট্যাকওভারফ্লো-উত্তরদাতা এবং আপনি স্ট্যাকওভারফ্লোতে অনুগ্রহ করে প্রতিটি প্রশ্নের উত্তর দেওয়ার সিদ্ধান্ত নিয়েছেন। আপনি এত ভাল, আপনি যে সমস্ত প্রশ্নে সমস্ত উদয় পেতে পরিচালিত। আপনি যখন প্রতিনিধিটির বন্যা বয়ে যাবেন তার জন্য অপেক্ষা করার সময়, আপনি একটি প্রোগ্রাম লিখেছেন যা চলেছে এবং সেই সমস্ত উদয়মণ্ডলে মোট কতগুলি প্রতিনিধি রয়েছে তা সন্ধান করুন।

নিয়মাবলী:

  • রান যখন,
    • আপনার প্রোগ্রাম স্ট্যাক ওভারফ্লোতে বৈশিষ্ট্যযুক্ত ট্যাবটিতে নেভিগেট করবে।
    • এটি প্রতিটি অনুগ্রহের মান স্ক্র্যাপ করে দেবে,
    • তারপরে এটি এটিকে যুক্ত করবে এবং মোটটি প্রদর্শন করবে
  • এটি এসও (এবং কেবলমাত্র এসও) যে কোনও জায়গা থেকে ডেটা ডাউনলোড করতে হবে, তবে আমি https://stackoverflow.com/questions?pagesize=50&sort=featured ব্যবহার করার পরামর্শ দেব , কারণ এটি কেবলমাত্র 10 পৃষ্ঠাগুলি
  • এটি , তাই সংক্ষিপ্ততম কোডটি জয়ী


2
stackoverflow.com/?tab=featured । 1 পৃষ্ঠায় সমস্ত বৈশিষ্ট্যযুক্ত প্রশ্ন।
এনজাল

7
@ নাটকেরখফস- এগুলি সবই নয়। নীচে স্ক্রোল করুন। উদাহরণস্বরূপ, যখন আমি কেবল এটি লোড করেছি, এটি 472 টি প্রশ্নের মধ্যে 96 টি দেখাচ্ছে।
বাজরাঘ


@ আসরফাল্ফ ইতিমধ্যে আলোচনা হয়েছে ...
থিডক্টর

উত্তর:


23

জাভাস্ক্রিপ্ট - 176 133 130 108 106

function f()(t+=$("[title~=an]").text(),u=$("[rel*=x]")[0])?$("html").load(u.href,f):alert(eval(t));f(t=0)

সম্পাদনা 1: কিছু নির্বাচককে ?:ছাঁটাইয়া গুগলের ক্লোজার কমপাইলার থেকে পরামর্শটি ব্যবহার করেছেন (@ সিরকো - ধন্যবাদ)

সম্পাদনা 2: sভিতরে dআরম্ভ করুন tএবং 0পরিবর্তে আরম্ভ করুন""

3 সম্পাদনা করুন: বুঝতে পেরেছিলাম যে আমার আসলে কোনও নির্দিষ্ট ধারককে টার্গেট করার দরকার নেই এবং পুরো ডকুমেন্টটি স্যুইপ করতে পারি, যা একগুচ্ছ .findকল এবং একটি অপ্রয়োজনীয় নির্বাচক থেকে মুক্তি পায় (এটির সাথে চলকটি বহন করে)

সম্পাদনা 4: tএকটি এড়ানোর জন্য ফাংশন কলে প্রারম্ভিকটি টানুন ;(এটি যেভাবেই শীর্ষে উঠানো হবে) এবং ফাংশনটিকে একটি স্টেটমেন্টের নীচে স্কোয়াশ করুন (তিনটি স্টেটমেন্ট স্টেটমেন্ট অবস্থার অভ্যন্তরে দুটি স্টেটমেন্ট একত্রিত করুন){}

দ্রষ্টব্য : এটি প্রতারণা করছে কিনা তা আমি নিশ্চিত নই, তবে এটি ইতিমধ্যে ইঙ্গিত করা একটি ব্রাউজারের কনসোল উইন্ডো থেকে চালানো উচিত http://stackoverflow.com/questions?page=1&sort=featured। এটি jQuery এবং উপযুক্ত পেজিং লিঙ্কগুলি নিজেই পৃষ্ঠাতে উপলব্ধ যে উপর নির্ভর করে। এছাড়াও, এটি কেবল ফায়ারফক্সে কাজ করছে বলে মনে হয় , আইই বা ক্রোমে নয়।

আউটপুট (পোস্ট করার সময়):

38150 (in an alert dialog)

বিস্ফোরণ / মন্তব্য :

function f()
    //concat all the bounty labels to t (they take the format "+50")
    //happens to be elements with title attribute containing word 'an'
    (t+=$("[title~=an]").text(),
    //find the "next" (has rel=next attribute) button
    u = $("[rel*=x]")[0])       
        ?
        //if there is a next button, load it, and then recurse f again
        $("html").load(u.href,f)
        :
        //else eval the 0+a+b+...+z tally and alert the result
        alert(eval(t))
//kick off the initial scrape (and simultaneously init the total tally)
f(t=0)

s=" #mainbar";d=$(s);t="";function a(){d.find(".bounty-indicator").each(function(){t+=this.innerHTML});(u=d.find("[rel=next]")[0])?d.load(u.href+s,a):alert(eval(t))}a();169 - ব্যবহৃত গুগল বন্ধ সংকলক।
সিরকো

8
প্রচুর অক্ষরকে বাইপাস করার জন্য ভাষা এবং প্রসঙ্গের স্নিগ্ধ পছন্দ! (যেমন " স্ট্যাকওভারফ্লো.com/" ) আমি এটি পছন্দ করি!
আলেক্সসি

আমি মনে করি আপনার উল্লেখ করা উচিত যে এটি jQuery প্লাগইন ব্যবহার করে করা হয়েছে। যা আমি মনে করি এটি হওয়া উচিত .. :)
মিস্টার_গ্রিন

ক্রোম একটি সিনট্যাক্স ত্রুটি ছুড়ে দেয়। একটি (পেরেন দিয়ে একটি ফাংশন বডি খোলার , এটি কি সত্যিই কাজ করে?
thejh

@ মিঃ গ্রীন - আমি ইতিমধ্যে এটি লক্ষ করেছি, তবে আমি আরও মনোযোগ আকর্ষণ করার জন্য এটি সাহসী করেছি ...
অ্যালকোনজা

21

পাইথন - 232, 231, 195, 183, 176, 174

নিয়মিত এক্সপ্রেশন ব্যবহার করে https://stackoverflow.com/questions?sort=featured থেকে HTML পার্স করে ।

উপরের বাউন্ড rangeমধ্যে forলুপ আবশ্যক হতে number of pages + 1বা অন্য কোড তুলবে HTTPErrorকারণ 404s করুন। প্রতি পৃষ্ঠায় ফলাফলের ডিফল্ট সংখ্যা 15, যা কোডটি ব্যবহার করে (বাদ ?pagesize=50দেওয়া অক্ষরগুলিতে সংরক্ষণ করে এবং ঠিক তেমন কার্যকর)।

আরও চারি গণনা আরও কমানোর টিপসটির জন্য @ গ্যাবেকে ধন্যবাদ ।

গল্ফড :

import requests,re;print sum(sum(map(int,re.findall(r"<.*>\+(\d+)<.*>",requests.get("https://stackoverflow.com/questions?sort=featured&page=%u"%i).text)))for i in range(1,33))

আউটপুট (পোস্ট করার সময়):

37700

আন-গল্ফড :

এখানে কিছুটা অ-গল্ফযুক্ত সংস্করণ যা পড়তে এবং বুঝতে কিছুটা সহজ হওয়া উচিত।

import requests, re

print sum(
          sum(
              map( int,
                   re.findall( r"<.*>\+(\d+)<.*>",
                               requests.get( "https://stackoverflow.com/questions?sort=featured&page=%u" % i).text
                   )
              )
          ) for i in range( 1, 33 )
      )

1
আপনি সুস্পষ্ট forলুপটি পরিত্রাণ পেতে এবং এটি 176 এ নামাতে পারেন:import urllib,re;print sum(sum(map(int,re.findall(r"<.*>\+(\d+)<.*>",urllib.urlopen("http://stackoverflow.com/questions?sort=featured&page=%u"%i).read())))for i in range(1,33))
গাবে

হার্ডকোডযুক্ত উপরের বাউন্ড থাকলে পরীক্ষা করা একটু কঠিন হয়ে যায়
আইনাসিও


6
@ রিচার্ড হ্যাঁ, তবে এটি কোড গল্ফ , সুতরাং ব্রিভিটি ট্রাম্পগুলি এটি "ভাল ধারণা" কিনা। আমি বলতে চাইছি, রিয়েল লাইফে কোনও শ্বেতস্থান ছাড়াই ভয়াবহ ওয়ান-লাইনার লেখা ভাল ধারণা নয় ...
টিম গুডম্যান

3
@ রিচার্ড এইচটিএমএলকে পার্সিং করা এবং এইচটিএমএল থেকে উত্তোলন করা বেশ আলাদা আলাদা কাজ। যেহেতু কোনও ওয়েবসাইট কোনও স্থিতিশীল এপিআই নয়, তাই এই ধরণের নিষ্কাশনের জন্য কোনও কাজ করার গ্যারান্টি নেই । যদিও টনির কোডটি কিছুটা ওভারগল্ফড, সুতরাং কোনও+ সংখ্যা অনুসরণ করে যদি কোনও ট্যাগ থাকে তবে তা ব্যর্থ হবে । উদাহরণস্বরূপ একটি প্রশ্নের শিরোনাম সেই বিন্যাসে ফিট করতে পারে।
কোডসইনচাওস

18

রেবোল - 164 133 130 (404 চেক সহ 139)

রেবোলের parseউপ-ভাষা ব্যবহার করে এইচটিএমএল পার্স করে। প্রথম 98 পৃষ্ঠাগুলি পরীক্ষা করে। আমি বুঝতে পেরেছিলাম যে পাইথন সমাধানের মতো আমারও একই প্রতিবন্ধকতা রয়েছে - অনেকগুলি পুনরাবৃত্তি 404 ত্রুটিগুলি আঘাত করে এবং কার্যকর করা বন্ধ করে দেয়। অনেক উন্নতির জন্য @ আরজিক্রিসকে ধন্যবাদ! 98 পৃষ্ঠাগুলি পর্যন্ত চেক আপ আপডেট হয়েছে।

s: 0 repeat n 99[parse read join http://stackoverflow.com/questions?sort=featured&page= n[15[thru{>+}copy x to{<}(s: s + do x)]]]s

404s (139) পরীক্ষা করার সময় ত্রুটি সহ:

s: 0 repeat n 99[attempt[parse read join http://stackoverflow.com/questions?sort=featured&page= n[15[thru{>+}copy x to{<}(s: s + do x)]]]]s

পরীক্ষা

>> s: 0 repeat n 20[parse read join http://stackoverflow.com/questions?sort=featured&page= n[15[thru{>+}copy x to{<}(s: s + do x)]]]s
== 23600

>> s: 0 repeat n 99[attempt[parse read join http://stackoverflow.com/questions?sort=featured&page= n[15[thru{>+}copy x to{<}(s: s + do x)]]]]s
Script: none Version: none Date: none
== 36050

ব্যাখ্যা

রিবোল হোয়াইটস্পেস উপেক্ষা করে, তাই আপনি যদি এটি চয়ন করেন তবে আপনি এটিকে সমস্ত লাইনে রেখে দিতে পারেন। পার্স দুটি ইনপুট নেয় এবং প্রথম যুক্তি ( read join ...) মোটামুটি স্ব-ব্যাখ্যামূলক। তবে এখানে আরও diaতিহ্যগত ইনডেন্টেশনে পার্স ডায়ালেক্ট নির্দেশাবলী সম্পর্কে কিছু মন্তব্য রয়েছে:

s: 0
repeat n 99 [
    parse read join http://stackoverflow.com/questions?sort=featured&page= n [
        ;-- match the enclosed pattern 15 times (the rule will fail politely when there are less entries)
        15 [
            ;-- seek the match position up THRU (and including) the string >+
            thru {>+}
            ;-- copy contents at the current position up TO (but not including) <
            copy x to {<}
            ;-- (Basically, run some non-dialected Rebol if this match point is reached) the do is a bit dangerous as it runs the string as code
            (s: s + do x)
        ]
    ]
]
;-- evaluator returns last value, we want the value in S
;-- (not the result of PARSE, that's a boolean on whether the end of input was reached)
s

ভাল ... আমি কিছু মন্তব্য সহ একটি প্রাচুর বিন্যাসিত সংস্করণ যুক্ত, আশা করি আপনি কিছু মনে করবেন না! এটি দেখতে কত ভাল Rebol নখ তাই এই ধরনের য়্যাম অনেক সমস্যা সবসময় দারুণ (সমস্ত একটি অর্ধ মেগ ক্রস-প্ল্যাটফর্ম Apache প্রদান লাইসেন্সকৃত এক্সিকিউটেবল কিন্তু যে সংস্কারের মত তোলে জিনিষ একটি কালশিটে থাম্ব মত লাঠি অন্য প্রত্যেক বিট অনুভূতি কিন্তু আমি এখনও বর্ণন তোলে যে শব্দ এবং যান "কমাতে এবং ফর্ম সংস্কার পরিণত হচ্ছে" শুধু হয় কুশ্রী ভাববে উপর এটা খুব হয়। Hawthorne, ওহ, এবং আপনি একটি গৃহস্থালির কাজ বন্ধ যেকোন এবং শেভ কিছু পরিবর্তন হতে পারে :-)।
ডাঃ Rebmu


দ্রষ্টব্য: আপনার উচ্চতর nমান থেকে লুপ করা দরকার ... বর্তমানে 28 পৃষ্ঠাগুলি রয়েছে (পৃষ্ঠার আকার 15 এর জন্য)। যদিও আপনার চর গণনায় প্রভাব ফেলবে না।
আলকোনজা

ধন্যবাদ আলকোনজা সমাধানে আরও অক্ষর যুক্ত করার আগে 98 পৃষ্ঠাগুলি যেতে সহজ। আমাকে আজ রাতে বাসা থেকে পুনরায় পরীক্ষা করতে হবে
জন

11

রুবি, 260

require'open-uri'
require'zlib'
i=b=0
d=''
until /"has_more":f/=~d
i+=1
d=Zlib::GzipReader.new(open("http://api.stackexchange.com/2.2/questions/featured?site=stackoverflow&page=#{i}&pagesize=100")).read
b+=d.scan(/"bounty_amount":(\d+)/).map{|x|x[0].to_i}.reduce :+
end
p b

স্ট্যাক এক্সচেঞ্জ এপিআই ব্যবহার করে।

আউটপুট (মূল পোস্টের সময় হিসাবে):

37200

আমি &pagesize=100চরিত্রের গণনায় গণনা করছি না , কারণ এটি এটি ছাড়া কাজ করে, তবে আমি পরীক্ষার সময় সুবিধার্থে এটি যুক্ত করেছি। যদি আপনি এটি অপসারণ করেন তবে এটি একই কাজ করে (এটি বাদে আরও কোটা খায় এবং কিছুটা বেশি সময় নেয়)।


খুব ভাল, আমি পাইথনে এটি পেয়েছিলাম 275
ক্লদিউ

বেশি কোটা খায় ??? আপনার কেবলমাত্র এসও এবং এসও ব্যবহার করার কথা ছিল।
জন ডিভোরাক

@ জনডভোরাক ??? আমি এপিআই কোটা বোঝাতে চাইছিলাম।
ডুরকনবব

1
requireS এর সাথে প্রতিস্থাপিত হতে পারে -rকমান্ড লাইন পতাকা।
জাস্টিন 6

8

রেব্মু - 108 107

rtN99[parseRDrj[http://stackoverflow.com/questions?sort=featured&page=N][15[thru{>+}copyXto{<}(a+JdoX)]]]j

পরীক্ষা (19:05 এএসটি এ)

>> rebmu [rtN99[parseRDrj[http://stackoverflow.com/questions?sort=featured&page=N][15[thru{>+}copyXto{<}(a+JdoX)]]]j]
Script: none Version: none Date: none
== 79200

রেবমু দেখতে বরং ক্রিপ্টিক লাগছে , তবে আপনি যখন এটির ঝুলন্ত হয়ে উঠেন এটি বেশ পঠনযোগ্য। আসুন এটি আনমিশ করা এবং এটি সঠিকভাবে আউট দিয়ে শুরু করি।

rt n 99 [
    parse rd rj [
        http://stackoverflow.com/questions?sort=featured&page= n
    ][
        15 [
            thru {>+}
            copy x to {<}
            (a+ j do x)
        ]
    ]
]
j

রেবমু হ'ল রেবোলের একটি উপভাষা যাতে আপনি সমাধানের মধ্যে মিলগুলি দেখতে পান। রেবুমু প্রতিটি বিবৃতিটির আকারটি এখনও হ্রাস করতে পারে না, তবে এটি একটি বিবর্তিত ভাষা। আমার প্রথম প্রয়াসের উন্নতির জন্য আবার @ আরজিক্রিসকে ধন্যবাদ।


ti(পূর্ণসংখ্যার কাছে!) doকোডের দৈর্ঘ্যের কোনও পরিবর্তন ছাড়াই রেবমুয়ের চেয়ে নিরাপদ হবে ।
rgchris

6

রুবি - 197

সংক্ষিপ্ত সংস্করণ:

require 'nokogiri'
require 'open-uri'
s=0
(1..33).each{|p|Nokogiri::HTML(open("http://stackoverflow.com/questions?page=#{p}&sort=featured")).css('.bounty-indicator').each{|b|s+=b.content.to_i}}
p s

মানব বান্ধব সংস্করণ:

require 'nokogiri'
require 'open-uri'
s=0
(1..33).each do |p|
    Nokogiri::HTML(open("http://stackoverflow.com/questions?page=#{p}&sort=featured")).css('.bounty-indicator').each do |b|
        s += b.content.to_i
    end
end
puts s

এবং উত্তর - 39700

স্ক্রিপ্ট প্যারামিটার সহ রুবি - ১৩৯

require 'nokogiri'
require 'open-uri'
s=0
(1..33).each{|p|Nokogiri::HTML(open(ARGV[0]+p.to_s)).css(ARGV[1]).each{|b|s+=b.content.to_i}}
p s

বাশ থেকে এটি চালানোর জন্য টাইপ করুন

ruby code_golf_stack_overflow2.rb http://stackoverflow.com/questions?sort=featured\&page= .bounty-indicator

requireS এর সাথে প্রতিস্থাপিত হতে পারে -rকমান্ড লাইন পতাকা।
জাস্টিন 6

6

পিএইচপি - 121 বাইট

<?for(;preg_filter('/>\+(\d+)/e','$t+=\1',@file('http://stackoverflow.com/questions?sort=featured&page='.++$n)););echo$t;

ব্যবহার array_sumবা অনুরূপ এড়াতে একটি রেজেক্স 'ইভাল' সংশোধক ব্যবহার করে । বৈধ এন্ট্রিগুলির মধ্যে সংক্ষিপ্ততম সমাধান বলে মনে হচ্ছে।


4
eপরিবর্তক পিএইচপি 5.5 হিসাবে অবচিত হয়েছে, কিন্তু এটি এখনও তা সত্ত্বেও golfing জন্য দরকারী।
ফ্যাব্রিসিও মাট্টি

6

পিএইচপি, 134 , 131 , 127

while($q=array_sum(preg_filter('#.*>\+#',0,file("http://stackoverflow.com/questions?sort=featured&page=".++$n))))$s+=$q;echo$s;

সমস্ত পৃষ্ঠাগুলির মধ্য দিয়ে লুপ করবে , pagesizeবাইটস আরও বেশি সংরক্ষণ করার জন্য সেট করা নেই GET

ভেরি ভেরি ডার্টি, কিন্তু ... PHPএর "ত্রুটি" এর সুবিধা নিচ্ছে !

  • পরে কোন স্থান নেই echo
  • while অ্যাসাইনমেন্ট এ থামে
  • RegExপ্রতিস্থাপনের পরে আউটপুট হল একটি স্ট্রিং যা অনুগ্রহের পরিমাণের সাথে শুরু হয়
  • array_sum() স্ট্রিং আপ যোগ
  • $nএবং $sআরম্ভ করা হয়, তবে কিছুই থেকে শুরু করা সমতুল্য নয়। শূন্য থেকে শুরু হিসাবে
  • ইত্যাদি ...

5

206 বাশ

অপ্টিমাইজেশন সম্ভব, খুব অলস

s=0;for i in `seq 1 11`;do for j in `wget -q -O - "http://stackoverflow.com/questions?pagesize=50&sort=featured&page=$i" | grep -o -E "bounty worth [0-9]*" | grep -o -E "[0-9]*"`;do s=$(($s+$j));done;done;echo $s

ফলাফল:

39450

4
আমি ভুল হতে পারি, তবে দেখে মনে হচ্ছে এটি কিছু মানের অপ্টিমাইজেশনের সাথে খুব ছোট হতে পারে ।
রিকনাগনি

seq 1 11কমে যেতে পারে seq 11
ফেডোরকুই

চারটি অক্ষর সংরক্ষণের জন্য আপনার পাইপের আশেপাশের স্থানগুলি থেকে মুক্তি পেতে সক্ষম হবেন এবং অবশ্যই এই দুটি গ্রেপগুলি একটিতে একত্রীকরণ করা যেতে পারে (আপনি কি "[0-9] +" বলতে চাইছেন?)।
Desty

এছাড়াও "গ্রেপ -ও-ই" => "egrep -o"।
Desty

আর তুমি পরিবর্তন করতে পারেন: "egrep -o '[0-9]" => "কাটা -d' '-f3" :)
Desty

5

জাভাস্ক্রিপ্ট - 129 119 110 107 টি অক্ষর

সম্পাদনা: উত্তরের উত্তর! এটি কেবলমাত্র "শীর্ষ বৈশিষ্ট্যযুক্ত প্রশ্নগুলি" পরিচালনা করে, যার মধ্যে কেবলমাত্র তার একটি অংশ রয়েছে। আলকোনজার উত্তরটি আরও বৈধ।

s="#mainbar";t="";eval("$(s).find('.bounty-indicator').each(function(){t+=this.innerHTML});alert(eval(t))")

কনসোল উইন্ডোতে বৈশিষ্ট্যযুক্ত https://stackoverflow.com/?tab=feat এ কার্যকর করুন । আলকোনজার সমাধানের ভিত্তিতে।

অপ্রয়োজনীয় শ্বেতস্পেসগুলি সরিয়ে এটিকে আরও কিছুটা গল্ফ করুন।

অন্য 9 টি অক্ষর সাফ করে ফাংশন কলটি সরাতে ইওল ব্যবহৃত হয়।

আরও কিছু অপ্রয়োজনীয় সাদা স্থান পরিস্কার করে।


3

জাভা, 540 অক্ষর

সতর্কতা: সক্রিয় উদ্বোধনের সংখ্যা ~ 470। এই কোডটি বহুবার স্ট্যাকওভারফ্লোতে কোনও পৃষ্ঠা অ্যাক্সেস করবে times এটি আপনাকে এতগুলি ডেটা অনুরোধ করার জন্য সমস্যায় ফেলতে পারে।

import java.io.*;import java.net.*;public class B{public static void main(String[]A){String u="http://stackoverflow.com/questions",d;Long i,s=i=0L,n=i.parseLong(o(u).replaceAll("^.*b.>(\\d+).*$","$1"));while(i++<n){d=o(u+"?pagesize=1&sort=featured&page="+n).replaceAll("^.*ion.>.(\\d+).*$","$1");s+=d.matches(".*\\D.*")?0:n.parseLong(d);}System.out.print(s);}static String o(String s){String d="";try{BufferedReader r=new BufferedReader(new InputStreamReader(new URL(s).openStream()));while((s=r.readLine())!=null)d+=s;}finally{return d;}}}

আমার আউটপুটটি ছিল 23400, কিন্তু যখন আমি টনিএইচ এর কোডটি দৌড়েছিলাম তখন আমি পেয়েছিলাম 37550। খারাপ সংবাদ.

সুন্দর কোড:

import java.io.*;
import java.net.*;

public class StackOverflowBounty {

    public static void main(String[] args) {
        String u = "http://stackoverflow.com/questions", d;
        Long i, s = i = 0L, n = i.parseLong(o(u).replaceAll("^.*b.>(\\d+).*$", "$1"));
        while (i++ < n) {
            d = o(u + "?pagesize=1&sort=featured&page=" + n).replaceAll("^.*ion.>.(\\d+).*$", "$1");
            s += d.matches(".*\\D.*") ? 0 : n.parseLong(d);
        }
        System.out.print(s);
    }

    static String o(String s) {
        String d = "";
        try {
            BufferedReader r = new BufferedReader(new InputStreamReader(new URL(s).openStream()));
            while ((s = r.readLine()) != null) {
                d += s;
            }
        } finally {
            return d;
        }
    }
}

এই কাজ করে উপায় সহজ। এটি ইউআরএল থেকে http://stackoverflow.com/questions"পাঠানো প্রশ্নগুলির সংখ্যা নির্ধারণের জন্য পাঠানো হয়েছে যে অনুমান রয়েছে (দ্রষ্টব্য: যদি সংখ্যাটি বাড়তে থাকে তবে প্রোগ্রাম ব্যর্থ হয়, তবে যদি এটি ড্রপ করে তবে এটি সূক্ষ্মভাবে কাজ করে)। এটা এই সংখ্যা Regex ব্যবহার করার জন্য অনুসন্ধান করে: b.>(\\d+)। এটি আজ অবধি সমস্ত পরীক্ষায় কাজ করেছে, তবে কেউ যদি এমন প্রশ্ন জিজ্ঞাসা করে যা সেই রেজেক্সের সাথে মেলে, এটি কাজ করবে না।

তারপরে, আমরা ইউআরএল http://stackoverflow.com/questions?pagesize=1&sort=featured&page=+ খুলি current question #। অন্য কথায়, আমরা প্রতিটি বৈশিষ্ট্যযুক্ত প্রশ্নের জন্য একটি নতুন পৃষ্ঠা খুলি এবং প্রশ্নের সংখ্যা কেবলমাত্র জোর করে 1রাখি, তাই আমরা সেগুলি সবই পেয়ে যাব। খ্যাতি অংশটি সর্বদা মিলবে ion.>.(\\d+), তাই এটি এটির জন্য আমি এটি ব্যবহার করি। আমি অপারেশনটিকে দুটি অংশে বিভক্ত করেছিলাম যাতে প্রশ্নের সংখ্যার পরিমাণ হ্রাস হয়েছে কিনা (অর্থাত্ স্ট্রিংটি কোনও পূর্ণসংখ্যার হিসাবে নয়) আমি সস্তাভাবে পরীক্ষা করতে পারি could

তারপরে, আমরা সমস্ত খ্যাতি সংযুক্ত করে এটিকে মুদ্রণ করি।

আমার মেশিনে চালাতে প্রায় 3 মিনিট 20 সেকেন্ড সময় লেগেছে।


কেউ কি জানেন যে এটি কেন সঠিক সংখ্যাটি মুদ্রণ করছে না?


পেজ সাইজ = 100 বড় সংখ্যা দেয়। আমি মনে করি অদ্ভুত কিছু ঘটছে কারণ আপনি পৃষ্ঠাগুলি = 1 পার করছেন। আমার উত্তরে আমি যদি 'পেজ সাইজ' নির্দিষ্ট না করে থাকি তবে ফলাফলটি আপনার সংখ্যার কাছাকাছি ছিল।
jzm

@ মালিক হ্যাঁ আমি বুঝতে পেরেছি যে আমি আপনার মন্তব্যটি "ভুল অনুবাদ" করেছি, তাই আমি আমার :-) মুছে ফেলেছি। পৃষ্ঠাগুলি = ১০০ পৃষ্ঠার আকার = 50 হিসাবে কাজ করে। আপনার অর্থ কি আপনি পৃষ্ঠাগুলি = 100 দিয়ে আমার কোডটি চালিয়েছেন?
জাস্টিন

2

সি # - 407

class B{void Main(string[] a){var o=0;for(int i=1;i<11;i++){var r=((System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(new Uri(string.Format(a[0]+"&page={0}",i)))).GetResponse();if(r.ContentLength>0){using(var s=new StreamReader(r.GetResponseStream()))foreach(Match m in Regex.Matches(s.ReadToEnd(),"bounty worth (.+?) "))o+=int.Parse(m.Value.Substring(m.Value.IndexOf('h')+2));}}Console.Write(o);}}

স্ট্যাকওভারফ্লো ডট কম ব্যবহার করা হচ্ছে। নীচে যেমন গিজিপ ডিকম্প্রেসিং এবং ভিন্ন রেগেক্স বাদে একই রকম।

পরীক্ষা

> prog.exe http://stackoverflow.com/questions?pagesize=50&sort=featured
38150

অদ্ভুতভাবে, নীচের চেয়ে আলাদা মান পাচ্ছি।


সি # - 496

এটি api.stackexchange ব্যবহার করে যা জিজেপড এবং জসন।

using System.IO.Compression;class B{void Main(string[] a){var o=0;for(int i=1;i<11;i++){var r=((System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(new Uri(string.Format(a[0]+"&page={0}",i)))).GetResponse();if(r.ContentLength>0)using(var s=new StreamReader(new GZipStream(r.GetResponseStream(),CompressionMode.Decompress)))foreach(Match m in Regex.Matches(s.ReadToEnd(),@"bounty_amount"":(.+?),"))o+=int.Parse(m.Value.Substring(m.Value.IndexOf(':')+1).Replace(",",""));}Console.Write(o);}}

Unminified:

using System.IO.Compression;

class B
{
    void Main(string[] a)
    {
        var o = 0;
        for (int i=1; i<11; i++) {
            var w = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(new Uri(string.Format(a[0]+"&page={0}",i)));
            if(w.GetResponse().ContentLength > 0)
                using(var s = new StreamReader(new GZipStream(w.GetResponse().GetResponseStream(),CompressionMode.Decompress)))
                    foreach(Match m in Regex.Matches(s.ReadToEnd(), @"bounty_amount"":(.+?),"))
                        o += int.Parse(m.Value.Substring(m.Value.IndexOf(':')+1).Replace(",", ""));
        }
        Console.Write(o);
    }
}

পরীক্ষা

ডিফল্ট পৃষ্ঠাগুলি:

> prog.exe http://api.stackexchange.com/2.2/questions/featured?site=stackoverflow
25300

Pagesize = 100:

> prog.exe "http://api.stackexchange.com/2.2/questions/featured?site=stackoverflow&pagesize=100"
37400

2

jQuery 191

i=0;function f(p){$.get('//api.stackexchange.com/2.2/questions/featured?site=stackoverflow&page='+p,function(d){for(x in d.items)i+=d.items[x].bounty_amount;d.has_more?f(p+1):alert(i)})};f(1)

এটি স্ট্যাকেক্সচেঞ্জ (এবং অন্যান্য অনেকগুলি সাইট) থেকে যে কোনও জায়গা থেকে কাজ করে, @ অ্যালকোনজা / @ নাটকেরখফসের উত্তরগুলির মতো নির্দিষ্ট পৃষ্ঠায় থাকার দরকার নেই


jQuery একটি লাইব্রেরি, একটি ভাষা নয়। এটি বৈধ কিনা না তা নিশ্চিত নন ...
রিকনগনি

@ br1ckb0t আপনি যদি চান তবে এটি জাভাস্ক্রিপ্ট হিসাবে গ্রহণ করুন। jQuery যে $
কোনও উপায়ে

হ্যাঁ, এটা বোঝা যায়! চমৎকার কোড।
রিকনাগনি

2

পিএইচপি - 139

Golfed:

<?php
$a=file_get_contents('http://stackoverflow.com/?tab=featured');preg_match_all('/n">\+([0-9]+)<\/div>/',$a,$r);echo array_sum($r[1]);

অবহেলিত - 147

সরল file_get_contents/ preg_match/array_sum

<?php
$a = file_get_contents('http://stackoverflow.com/?tab=featured');
preg_match_all('/n">\+([0-9]+)<\/div>/', $a, $r);
echo array_sum($r[1]);

টেস্ট:

পিএইচপি রান.এফপি

10250


2

বাশ 174

Https://codegolf.stackexchange.com/a/25180/7664 এর উপর ভিত্তি করে :

s=0;for i in {1..11};do for j in `wget -qO- "stackoverflow.com/questions?pagesize=50&sort=featured&page=$i"|cut -d' ' -f18|egrep '^[0-9]+$'`;do s=$(($s+$j));done;done;echo $s

আপনি এ থেকে মুক্তি পেতে পারেন pagesize=50&এবং আরও লুপ করতে পারেন (আমার মনে হয় ডিফল্ট পৃষ্ঠার আকার 15 হলে)।
আলকোনজা

@ অ্যালকনজা হুম, ঠিক আছে, তাই আমি এটি 162 এ নামতে পারলাম ... তবে কেবলমাত্র সার্ভারে আরও অনুরোধ স্প্যামের খারাপ দিক দিয়ে।
thejh

2

পাইথন (174 টি অক্ষর):

উপরের অজগর উত্তরটি প্রসারিত করা (মন্তব্য করার মতো পর্যাপ্ত কর্মফল নেই):

import requests,re;print sum(sum(map(int,re.findall(r"<.*>\+(\d+)<.*>",requests.get("http://stackoverflow.com/questions?sort=featured&page=%u"%i).text)))for i in range(1,33))

Urllib এর পরিবর্তে অনুরোধগুলি 2 টি অক্ষরে কমে যায়।


1

রুবি (176 অক্ষর):

হার্ড-কোডেড পৃষ্ঠা নম্বর ব্যবহারের টনি এইচ এর উদাহরণ অনুসরণ করে, আমি যা পেয়েছি তা এখানে:

require'open-uri';b=0;(1..29).each{|i|d=open("http://stackoverflow.com/questions?sort=featured&page=#{i}").read;b+=d.scan(/<.*>\+(\d+)<.*>/).map{|x|x[0].to_i}.reduce 0,:+};p b

লেখার সময় আমাকে 35300 দিয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.