জাভা, 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 সেকেন্ড সময় লেগেছে।
কেউ কি জানেন যে এটি কেন সঠিক সংখ্যাটি মুদ্রণ করছে না?