StackExchange मुस्तफा एक ही सवाल तीन बार पूछे जाने के लिए खड़ा नहीं हो सकता


16

ऑस्टिन: "आपको किसने भेजा है?"

मुस्तफा: "आपको मुझे मारना होगा!"

ऑस्टिन: "आपको किसने भेजा है?"

मुस्तफा: "मेरे गधे, शक्तियां चुंबन!"

ऑस्टिन: "आपको किसने भेजा है?"

मुस्तफा: "डॉ। ईविल।"

(...)

मुस्तफा: "मैं तीन बार एक ही सवाल पूछने के लिए खड़ा नहीं हो सकता। यह सिर्फ मुझे परेशान करता है।"

आपको ऑस्टिन पॉवर्स और मुस्तफा की भावना में एक छोटे से संवाद का अनुकरण करना है । लेकिन संपूर्ण वार्तालाप के लिए डेटा स्रोत एक StackOverflow प्रश्न होगा (एक URL से इनपुट के रूप में प्रदान किया गया है)।

नियम

प्रश्न पूछने वाले का उपयोगकर्ता नाम "ऑस्टिन" के स्थान पर उपयोग किया जाएगा। वे सवाल पूछेंगे जो तीन बार प्रश्न शीर्षक में अंतिम वाक्य से आता है, (जो पहले से ही नहीं था तो प्रश्न चिह्न में समाप्त करने के लिए मजबूर किया गया है)।

StackExchange "मुस्तफा" का हिस्सा होगा। अंततः दिया गया उत्तर उस उत्तर में पहले वाक्य से आता है जो प्रश्नवाचक चिह्न में समाप्त नहीं होता है, और इसका उत्तर उपयोगकर्ता के नाम पर दिया जाएगा।

प्रश्न को खेल के लिए अर्हता प्राप्त करने के लिए, इसका (ए) के पास उत्तर होना चाहिए, और (बी) मूल प्रश्न पर टिप्पणियों का क्रम होना चाहिए:

  • प्रश्नकर्ता के अलावा किसी और से टिप्पणी करें
  • (किसी भी संख्या में टिप्पणी की गई)
  • प्रश्नकर्ता की टिप्पणी
  • प्रश्नकर्ता के अलावा किसी और से टिप्पणी करें
  • (किसी भी संख्या में कमज़ोर टिप्पणी)
  • प्रश्नकर्ता की टिप्पणी

यदि यह क्रम शीर्ष रैंक वाले उत्तर की तारीख से पहले संतुष्ट नहीं है , तो कार्यक्रम को बस उत्पादन करना चाहिए"Oh, behave!"

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

स्पष्टीकरण

  • किसी टिप्पणी से किसी भी अग्रणी "@XXX" प्रतिक्रिया डेटा को स्ट्रिप करें।

  • क्योंकि StackOverflow टिप्पणियों को सारांशित करता है यदि उनमें से कई हैं, तो आपको पूरी सूची प्राप्त करने के लिए संभवतः एक दूसरे अनुरोध का उपयोग करना होगा। यह अनुरोध /programming//posts/NNN/comments?_=MMMएन में पोस्ट आईडी और एम में प्रश्न आईडी के साथ है। उदाहरण के लिए देखें: /programming//posts/11227809/comments?_=211160

  • URL को केवल पाठ को लंगर से हटा दिया जाना चाहिए।

  • हम एक "वाक्य" को एक कोड ब्लॉक के बाहर के रूप में परिभाषित करेंगे जो एक अवधि, प्रश्न चिह्न, या विस्मयादिबोधक बिंदु में समाप्त होता है। यदि पाठ के एक रन में इस फॉर्म का कोई समाप्ति विराम चिह्न नहीं है, तो पाठ का अंत वाक्य का अंत है; मानो यह किसी कालखंड के साथ लिखा गया हो।

  • यदि आप ऐसे मज़ेदार परीक्षण मामलों की तलाश कर रहे हैं, जिनके योग्य होने की संभावना है, तो आप StackExchange Data Explorer का उपयोग करने का प्रयास कर सकते हैं, जैसे कि अधिकांश टिप्पणियां

  • ... और आने के लिए, मैं दांव लगाना होगा ...

नमूने

नमूना एक

इनपुट:

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

आउटपुट:

shanee: "मुझे बाद के सादे रिट्रीवल के लिए नैतिक रूप से उपयोगकर्ता के पासवर्ड भंडारण के लिए कैसे संपर्क करना चाहिए?"

stefanw: "मुझे लगता है कि वह जानता है कि यह अच्छा नहीं है!"

shanee: "मुझे बाद के सादे रिट्रीवल के लिए नैतिक रूप से उपयोगकर्ता के पासवर्ड भंडारण के लिए कैसे संपर्क करना चाहिए?"

Rook: "शायद आपको पूछना चाहिए कि आप एक सुरक्षित तरीके से बफर ओवरफ्लो वल्नरेबिलिटी को कैसे लागू कर सकते हैं!"

shanee: "मुझे बाद के सादे रिट्रीवल के लिए नैतिक रूप से उपयोगकर्ता के पासवर्ड भंडारण के लिए कैसे संपर्क करना चाहिए?"

माइकल ब्यूर: "यह पूछें कि पासवर्ड को प्लेनटेक्स्ट में क्यों होना चाहिए: यदि ऐसा है तो उपयोगकर्ता पासवर्ड को पुनः प्राप्त कर सकता है, तो सख्ती से बोलना आपको वास्तव में सेट किए गए पासवर्ड को पुनः प्राप्त करने की आवश्यकता नहीं है (उन्हें याद नहीं है कि यह क्या है। वैसे भी), आपको उन्हें एक पासवर्ड देने में सक्षम होने की आवश्यकता है जो वे उपयोग कर सकते हैं। "

नमूना दो

इनपुट:

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

आउटपुट:

डीवीके: "डेड-ईटर से लड़ने के लिए मोगल में जन्मे जादूगरों ने मुगल तकनीक का उपयोग क्यों नहीं किया?"

DampeS8N: "यह फिर से किनारे पर नृत्य करता है!"

डीवीके: "डेड-ईटर से लड़ने के लिए मोगल में जन्मे जादूगरों ने मुगल तकनीक का उपयोग क्यों नहीं किया?"

DampeS8N: "राइट, लेकिन यह साइट प्लॉट होल्स को इंगित करने के बारे में नहीं है!"

डीवीके: "डेड-ईटर से लड़ने के लिए मोगल में जन्मे जादूगरों ने मुगल तकनीक का उपयोग क्यों नहीं किया?"

जेफ: "मुझे विश्वास है, हालांकि मुझे एक संदर्भ नहीं मिल पाया है, कि जेके राउलिंग ने वास्तव में एक बिंदु पर इसका उल्लेख किया है।"

नमूना तीन

इनपुट:

/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। इसलिए, दूसरे अनुवर्ती और उत्तर के बीच एक कारण लिंक नहीं है ।:-P)

जीत का मानदंड

कोड गोल्फ - सबसे छोटा कोड जीतता है।


4
बस पिछले आधे घंटे को पढ़ा कि हैरी पॉटर धागा। उस के लिए +1!
ब्रूनोज

थोड़ी देर में इस सवाल का कोई नया जवाब नहीं आया। शायद अब इसे समाप्त करने का समय है, या कम से कम एक समय सीमा जोड़ें?
लार्स एबर्ट

@LarsEbert हो गया ... (हालांकि मैं वास्तव में Rebmu में इसे एक दरार लेने के लिए जा रहा था, इसके बारे में बाधाओं मेरे अनुसूची पर चलने से स्लिम एटीएम हैं।)
HostileFork कहते हैं न विश्वास एसई

आप इसे अभी भी भविष्य में जोड़ सकते हैं। मैं एक वैकल्पिक (और संभवतः कम) समाधान देखना पसंद करूंगा।
लार्स एबर्ट

जवाबों:


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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.