স্ট্যাক এক্সচেঞ্জ মুস্তাফা তিনবার একই প্রশ্ন জিজ্ঞাসা করতে পারে না


16

অস্টিন: "আপনাকে কে পাঠিয়েছে?"

মোস্তফা: "আমাকে মেরে ফেলতে হবে!"

অস্টিন: "আপনাকে কে পাঠিয়েছে?"

মোস্তফা: "আমার পাছায় চুমু দাও, শক্তি!"

অস্টিন: "আপনাকে কে পাঠিয়েছে?"

মোস্তফা: "অ্যাভিল ডা।"

(...)

মোস্তফা: "আমি তিনবার একই প্রশ্ন জিজ্ঞাসা করতে পারি না। এটা আমাকে বিরক্ত করে।"

আপনি অস্টিন পাওয়ার এবং মোস্তফার চেতনায় একটি সংক্ষিপ্ত কথোপকথন অনুকরণ করতে পারেন । তবে পুরো কথোপকথনের ডেটা উত্সটি স্ট্যাকওভারফ্লো প্রশ্ন (কোনও URL থেকে ইনপুট হিসাবে সরবরাহ করা হবে) হবে।

বিধি

প্রশ্নকারীদের ব্যবহারকারীর নাম "অস্টিন" এর জায়গায় ব্যবহার করা হবে। তারা তিনবার যে প্রশ্নটি জিজ্ঞাসা করবে তা প্রশ্নের শিরোনামের শেষ বাক্য থেকে আসে (এটি ইতিমধ্যে যদি না থাকে তবে প্রশ্ন চিহ্নে শেষ করতে বাধ্য করা হবে)।

স্ট্যাক এক্সচেঞ্জ "মুস্তফা" এর অংশটি অভিনয় করবে। চূড়ান্তভাবে দেওয়া উত্তরটি প্রথম বাক্য থেকেই উত্তরের উত্তর থেকে আসে যা একটি প্রশ্ন চিহ্নে শেষ হয় না এবং উত্তর দেওয়া ব্যবহারকারীর নাম হিসাবে দায়ী করা হবে।

গেমটির যোগ্যতা অর্জনের জন্য কোনও প্রশ্নের জন্য, এর অবশ্যই (ক) এর একটি উত্তর থাকতে হবে এবং (খ) অবশ্যই মূল প্রশ্নে মন্তব্যগুলির ক্রম থাকতে হবে:

  • প্রশ্নকারী ছাড়া অন্য কারও মন্তব্য
  • (যে কোনও সংখ্যক এড়িয়ে যাওয়া মন্তব্য)
  • প্রশ্নকারী থেকে মন্তব্য
  • প্রশ্নকারী ছাড়া অন্য কারও মন্তব্য
  • (যেকোন সংখ্যক ত্যাগযোগ্য মন্তব্য)
  • প্রশ্নকারী থেকে মন্তব্য

শীর্ষস্থানীয় উত্তরের তারিখের আগে এই ক্রমটি যদি সন্তুষ্ট না হয় তবে প্রোগ্রামটি সহজভাবে আউটপুট করা উচিত"Oh, behave!"

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

ব্যাখ্যা

  • একটি মন্তব্য থেকে যে কোনও নেতৃস্থানীয় "@XXX" প্রতিক্রিয়া ডেটা স্ট্রিপ করুন।

  • স্ট্যাকওভারফ্লো মন্তব্যগুলির সংক্ষিপ্তসার জানায় যদি সেগুলির মধ্যে অনেকগুলি থাকে তবে আপনাকে সম্ভবত সম্পূর্ণ তালিকা পেতে দ্বিতীয় অনুরোধটি ব্যবহার করতে হবে। সেই অনুরোধটি /programming//posts/NNN/comments?_=MMMএন এর পোস্ট আইডি এবং এম এর মধ্যে প্রশ্ন আইডি সহ ফর্মের উদাহরণ হিসাবে দেখুন: /programming//posts/11227809/comments?_=211160

  • ইউআরএলগুলি কেবল অ্যাঙ্কর পাঠ্যে ছড়িয়ে দেওয়া উচিত।

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

  • আপনি মজার পরীক্ষার বিষয় যে যোগ্যতা অর্জন করার সম্ভাবনা বেশি খুঁজছেন, তাহলে আপনি যেমন StackExchange ডেটা এক্সপ্লোরার ব্যবহার চেষ্টা করতে পারে সঙ্গে সর্বাধিক মন্তব্য পোস্ট করুন

  • ... আরও আসতে হবে, আমি বাজি ...

নমুনা

নমুনা এক

ইনপুট:

/programming/2283937/how-should-i-ethically-approach-user-password-storage-for-later-plaintext-retrie/

আউটপুট:

শনি: "পরবর্তী প্লেটেক্সট পুনরুদ্ধারের জন্য আমার কীভাবে নৈতিকভাবে ব্যবহারকারীর পাসওয়ার্ড স্টোরেজটির কাছে যেতে হবে?"

স্টিফানওয়ু: "আমি মনে করি তিনি জানেন যে এটি ভাল নয়!"

শনি: "পরবর্তী প্লেটেক্সট পুনরুদ্ধারের জন্য আমার কীভাবে নৈতিকভাবে ব্যবহারকারীর পাসওয়ার্ড স্টোরেজটির কাছে যেতে হবে?"

রুক: "সম্ভবত আপনাকে জিজ্ঞাসা করা উচিত আপনি কীভাবে নিরাপদ উপায়ে বাফার ওভারফ্লো ঝুঁকির বাস্তবায়ন করতে পারেন!"

শনি: "পরবর্তী প্লেটেক্সট পুনরুদ্ধারের জন্য আমার কীভাবে নৈতিকভাবে ব্যবহারকারীর পাসওয়ার্ড স্টোরেজটির কাছে যেতে হবে?"

মাইকেল বার: "পাসওয়ার্ডটি সরলরেখার জন্য কেন প্রয়োজন তা জিজ্ঞাসা করুন: এটি যদি এমন হয় যাতে ব্যবহারকারী পাসওয়ার্ডটি পুনরুদ্ধার করতে পারে তবে কঠোরভাবে বললে আপনার সত্যিকার অর্থে যে পাসওয়ার্ডটি সেট করেছেন তা পুনরুদ্ধার করার প্রয়োজন নেই (তারা মনে করেন না এটি কী যাইহোক), আপনার তারা ব্যবহার করতে পারে এমন একটি পাসওয়ার্ড দেওয়ার পক্ষে তাদের সক্ষম হওয়া দরকার ""

নমুনা দুই

ইনপুট:

http://scifi.stackexchange.com/questions/2611/why-dont-muggle-born-wizards-use-muggle-technology-to-fight-death-eaters

আউটপুট:

ডিভিকে: "কেন জড়িত জন্ম নেওয়া উইজার্ডরা ডেথ ইটারের সাথে লড়াই করার জন্য মগল প্রযুক্তি ব্যবহার করে না?"

ড্যাম্প এস 8 এন: "এটি আবার প্রান্তে নেচে!"

ডিভিকে: "কেন জড়িত জন্ম নেওয়া উইজার্ডরা ডেথ ইটারের সাথে লড়াই করার জন্য মগল প্রযুক্তি ব্যবহার করে না?"

ড্যাম্প এস ৮ এন: "ঠিক আছে, তবে এই সাইটটি প্লটের গর্তগুলি দেখানোর বিষয়ে নয়!"

ডিভিকে: "কেন জড়িত জন্ম নেওয়া উইজার্ডরা ডেথ ইটারের সাথে লড়াই করার জন্য মগল প্রযুক্তি ব্যবহার করে না?"

জেফ: "আমি বিশ্বাস করি, যদিও আমি কোনও তথ্য খুঁজে পেতে অক্ষম হয়েছি, জে কে রাওলিং আসলে এক পর্যায়ে এটি উল্লেখ করেছিলেন।"

নমুনা তিন

ইনপুট:

/programming/11227809/why-is-processing-a-sorted-array-faster-than-an-unsorted-array

আউটপুট:

"ওহ, আচরণ!"

(শীর্ষ রেট করা উত্তরের সময়টি Jun 27 '12 at 13:56যখন প্রশ্নকর্তা কর্তৃক প্রশ্নে দ্বিতীয় ফলো-আপ মন্তব্য সময়ে Jun 27 '12 at 14:52হয় Hence সুতরাং, দ্বিতীয় ফলোআপ এবং উত্তরের মধ্যে কোনও কার্যকারিতা নেই :-- পি)

বিজয়ী মানদণ্ড

কোড গল্ফ - সংক্ষিপ্ততম কোড জিতেছে।


4
হ্যারি পটারের থ্রেডটি পড়ে শেষ অর্ধ ঘন্টা ব্যয় করেছেন। +1 এর জন্য!
ব্রুনোজে

কিছুক্ষণের মধ্যে এই প্রশ্নের নতুন কোনও উত্তর পাওয়া যায়নি। হয়তো এখনই এটি শেষ করার সময় এসেছে, বা কমপক্ষে একটি সময়সীমা যুক্ত করুন?
লার্স এবার্ট

@ লার্সবার্ট ডোন ... (যদিও আমি রেবমুতে এটির সত্যতা জানতে পেরেছিলাম, যদিও আমার সময়সূচীতে এটি তৈরি করার
প্রতিক্রিয়া হ'ল

আপনি এখনও ভবিষ্যতে এটি যুক্ত করতে পারেন। আমি একটি বিকল্প (এবং সম্ভবত সংক্ষিপ্ত) সমাধান দেখতে পছন্দ করব।
লার্স এবার্ট

উত্তর:


3

পিএইচপি, 1282 অক্ষর

কোড গল্ফ চ্যালেঞ্জের জন্য 1282 বেশ বিশাল হলেও চ্যালেঞ্জটি বেশ জটিল। (এবং আমি গল্ফ খুব ভাল না।)

<?php function a($a,$b='q'){$a=strip_tags(htmlspecialchars_decode($a,ENT_QUOTES));$a=preg_replace('/^@[^ ]+\s+/','',$a);$a=mb_split('(?<=(?:\.|!|\?))\s+',$a);if($b=='q'){return preg_replace('/(?:\.|!|\?)$/','',$a[0]).'?';}else{foreach($a as$s){if(!preg_match('/\?$/',$s)){if($b=='c'){return preg_replace('/(?:\.|!)$/','',$s).'!';}else{return preg_replace('/(?<!(?:\.|!))$/','.',$s);}}}}return 0;}function b($a){return json_decode(gzdecode(file_get_contents('http://api.stackexchange.com/2.2/questions/'.$a)));}function c($a){return $a->owner->display_name;}$n="\n";$x="Oh, behave!\n";$r=parse_url($argv[1]);$b=explode('/',$r['path']);$b=$b[2];$u=b($b.'?site='.$r['host']);$u=$u->items[0];$c=b($b.'/comments?filter=withbody&order=asc&sort=creation&site='.$r['host']);$a=b($b.'/answers?filter=withbody&order=desc&sort=votes&site='.$r['host']);if(!count($a->items)||!count($c->items))die($x);$a=$a->items[0];$s=array();$d=1;foreach($c->items as$e){if($e->creation_date>$a->creation_date)break;if($e->owner->user_id==$u->owner->user_id){$d=1;}elseif($d){$e->body=a($e->body,'c');if($e->body){$s[]=$e;}$d=0;}}if(count($s)<2)die($x);$q=c($u).': "'.a($u->title,'q').'"'.$n;echo$q.c($s[0]).': "'.$s[0]->body.'"'.$n.$q.c($s[1]).': "'.$s[1]->body.'"'.$n.$q.c($a).': "'.a($a->body,'a').'"'.$n;

উদার সংস্করণ

<?php

    function firstSentence($string, $type = 'q') {
        $string = strip_tags(htmlspecialchars_decode($string, ENT_QUOTES));
        $string = preg_replace('/^@[^ ]+\s+/', '', $string);
        $string = mb_split('(?<=(?:\.|!|\?))\s+', $string);
        if($type === 'q') {
            return preg_replace('/(?:\.|!|\?)$/', '', $string[0]) . '?';
        } else {
            foreach($string as $s) {
                if(!preg_match('/\?$/', $s)) {
                    if($type === 'c') {
                        return preg_replace('/(?:\.|!)$/', '', $s) . '!';
                    } else {
                        return preg_replace('/(?<!(?:\.|!))$/', '.', $s);
                    }
                }
            }
        }
        return false;
    }

    $x = "Oh, behave!\n";

    $url = parse_url($argv[1]);
    $api = 'http://api.stackexchange.com/2.2/';

    $id = explode('/', $url['path']);
    $id = $id[2];

    $question = json_decode(gzdecode(file_get_contents($api . 'questions/' . $id . '?site=' . $url['host'])));
    $question = $question->items[0];
    $comments = json_decode(gzdecode(file_get_contents($api . 'questions/' . $id . '/comments?filter=withbody&order=asc&sort=creation&site=' . $url['host'])));
    $answer = json_decode(gzdecode(file_get_contents($api . 'questions/' . $id . '/answers?filter=withbody&order=desc&sort=votes&site=' . $url['host'])));
    if(!count($answer->items) || !count($comments->items))
        die($x);

    $answer = $answer->items[0];

    $selected = array();
    $usable = true;
    foreach($comments->items as $comment) {
        if($comment->creation_date > $answer->creation_date)
            break;
        if($comment->owner->user_id === $question->owner->user_id) {
            $usable = true;
        } elseif($usable) {
            $comment->body = firstSentence($comment->body, 'c');
            if($comment->body !== false) {
                $selected[] = $comment;
            }
            $usable = false;
        }
    }

    if(count($selected) < 2)
        die($x);

    $q = $question->owner->display_name . ': "' . firstSentence($question->title, 'q') . '"' . "\n";
    echo $q;
    echo $selected[0]->owner->display_name . ': "' . $selected[0]->body . '"' . "\n";
    echo $q;
    echo $selected[1]->owner->display_name . ': "' . $selected[1]->body . '"' . "\n";
    echo $q;
    echo $answer->owner->display_name . ': "' . firstSentence($answer->body, 'a') . '"' . "\n";

?>

আপনি এই সমস্ত $a=function(1,2,$a)জিনিস একসাথে চেইন করতে পারেন ।
wizzwizz4
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.