আমি কি ডেনিসের চেয়ে বেশি ছিটে?


15

কিংবদন্তি অনুসারে , প্রায় সবাই ডেনিসের চেয়েও বেশি ছড়িয়ে পড়ে । যদি না হয়, তারা হবে।

এখন আমি কৌতূহল বোধ করি আমি যদি সেই 'প্রায় প্রত্যেকেরই' একজন হয়ে থাকি।

বিন্যাসে আপনাকে একটি উত্তরের লিঙ্ক দেওয়া হবে /codegolf/[QUESTION ID]/[QUESTION NAME]/#[ANSWER ID]

কোডটির দৈর্ঘ্যটি সন্ধান করুন, যা আমরা লিঙ্কের উত্তরের প্রথম লাইনে (চিহ্নডাউন ওয়াইস) শেষ সংখ্যা হিসাবে ধরে নেব ।

তারপরে, ডেনিসের উত্তরগুলি অনুসন্ধান করুন এবং এটিও করুন।

এখন ইনপুট এবং ডেনিসের উত্তর কোডের দৈর্ঘ্যের তুলনা করুন এবং যদি এটি গল্ফ হয় (যার অর্থ ডেনিসের এক বা একাধিক উত্তর 'ইনপুট উত্তরের চেয়ে কম হয়), একটি সত্যবাদী মান আউটপুট দেয় এবং যদি না হয় তবে একটি মিথ্যা মান।

উত্তর হিসাবে একই প্রশ্নে ডেনিসের কোনও উত্তর না থাকলে, একটি মিথ্যা মান আউটপুট করে।

উদাহরণ

  • লিঙ্ক :true
  • লিঙ্ক : false(কমপক্ষে আপাতত, কখন এটি পরিবর্তন হয় তা বলুন)

বিধি

  • আপনি কোনও ধরণের সত্যবাদী / মিথ্যা মান ব্যবহার করতে পারেন।
  • আপনার দেওয়া উত্তরের প্রশ্নটি সর্বদা
  • প্রশ্নের ডেনিসের উত্তর নাও থাকতে পারে, তবে ইনপুটযুক্ত উত্তরটি কখনই ডেনিসের হতে পারে না।

  • আপনি ধরে নিতে পারেন উত্তরের প্রথম লাইনে সর্বদা একটি সংখ্যা রয়েছে।


3
আমরা কি ধরে নিতে পারি যে প্রদত্ত প্রশ্নে ডেনিসের সর্বদা উত্তর থাকবে এবং প্রদত্ত উত্তরটি ডেনিসের উত্তর হবে না?
স্কিডদেব

@ মায়ুব না, এবং হ্যাঁ
ম্যাথু রোহ

আমাদের কী কী পেজিং পরিচালনা করতে হবে বা একাধিক পৃষ্ঠাগুলির উত্তর থাকলে আমরা উভয় উত্তর একই পৃষ্ঠায় অনুমান করতে পারি?
শেগি

@ শেগি প্রাক্তন
ম্যাথু রোহ

@ সিআইজিএসইজিভি যদি ডেনিসের কোনও উত্তর না থাকে তবে ডেনিস উত্তরটি ছাপিয়ে দেয়নি বলেই কি আমরা মিথ্যা আউটপুট দেব?
স্কিডদেব

উত্তর:


1

পাইথন 3.6 + অনুরোধ + বিএস 4 - 363 358 বাইট

import bs4,re,requests
u,n=input().split("/#");i=1;d=y=float("inf")
while i:
 A=bs4.BeautifulSoup(requests.get(u+f"?page={i}").text,"html.parser")(class_="answer")
 for a in A:
  c=int(re.findall("\d+",(a("h1")+a("h2")+a("p"))[0].text)[-1])
  if "Dennis"in a(class_="user-details")[-1].text:d=min(c,d)
  if a["data-answerid"]==n:y=c
 i=A and i+1;
print(d<y)

প্রিন্ট Trueবা False

দ্রষ্টব্য: এই উত্তরের দ্বারা অবৈধ এইচটিএমএল তৈরি হওয়ার কারণে বর্তমানে দ্বিতীয় লিঙ্কটিতে কাজ করা হয় না ( emএবং strongট্যাগগুলি দ্বিতীয় লাইনের শেষে ভুল ক্রমে সমাপ্ত হয় এবং পার্সারটিকে ব্যবহারকারীর নামটি ব্লক মিস করে)। পরিবর্তে এই লিঙ্ক এ চেষ্টা করুন ।

এপিআই ব্যবহার করে - 401 380 বাইট

import requests,re
q,A=re.findall("\d+",input());i=1;d=y=float("inf")
while i:
 r=requests.get(f"https://api.stackexchange.com/2.2/questions/{q}/answers?site=codegolf&filter=withbody&page={i}").json();i=r["has_more"]and i+1
 for a in r["items"]:
  c=int(re.search("(\d+)\D+$",a["body"]).group(1))
  if a["owner"]["user_id"]==12012:d=min(d,c)
  if a["answer_id"]==A:y=c
print(d<y)

মনে রাখবেন এটি দ্বিতীয় লিঙ্কেও ব্যর্থ হয়, তবে কারণ একটি উত্তর This may be foul play.শিরোনামের পরিবর্তে শুরু হয়েছিল ...


জেএসএন পার্সারের পরিবর্তে উত্তর ডেটা পেতে স্ট্যাক এক্সচেঞ্জ এপিআই ব্যবহার করার কথা বিবেচনা করুন , filter=withbodyবাইট গণনা দখল করার জন্য উত্তর বডি পেতে কেবল আপনার জিইটি অনুরোধে আছে তা নিশ্চিত করুন
মান কালি

এপিআই সংস্করণ দিয়ে, আপনি aদু'বার ব্যবহার করেছেন (একবারে উত্তর আইডি সেট করতে এবং অন্যটি পুনরাবৃত্তি করার সময় r["items"], যা ভুল আচরণের দিকে পরিচালিত করবে Also এছাড়াও, আপনাকে সেট করার দরকার নেই pagesize(এটি 30 এ ডিফল্ট হবে)) c=int(re.search(r'(\d+) bytes').group(1))আপনাকে একটি দেওয়া উচিত বাইটকাউন্টের আরও সঠিক পুনরুদ্ধার এবং আরও খাটো এবং এটি যদি এখনও ব্যর্থ (\d+)\s*bytesহয় তবে কৌতুকটি করে তবে কিছুটা দীর্ঘ Finally অবশেষে, i=r["has_more"]and i+1আপনার ত্রৈমাসিকের শর্তসাপেক্ষের চেয়ে সংক্ষিপ্ত
মান ইঙ্ক

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

@ ভ্যালিউইঙ্ক ধন্যবাদ, এখনই কিছুটা ছোট। আমরা মত দেখায়, শুধু API- এর জন্য একটি golfing ভাষা প্রয়োজন তার কল হয় sooo দীর্ঘ ...
matsjoyce

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

1

রুবি, 314 315 308 + 20 = 334 335 328 বাইট

পতাকা ব্যবহার করে -n -rjson -ropen-uri। একটি ছোট্ট বাগটি ঠিক করা থেকে +1 বাইট।

open-uriরুবি ডিফল্ট লাইব্রেরি আবিষ্কার করে -7 বাইট ।

~/(\d+)\D+(\d+)/
u="http://api.stackexchange.com/2.2/questions/#$1/answers?site=codegolf&filter=withbody&page=%s"
n=eval$2
a="answer_id"
j=1
o=[]
(o+=r=JSON.parse(open(u%j).read)["items"]
j=r!=[]&&j+1)while j
p o.select{|e|e["owner"]["user_id"]==12012||e[a]==n}.min_by{|e|e["body"][/\d+\s*bytes/].to_i}[a]!=n
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.