सूचना: लोकप्रिय मांग के बाद मैंने नियमों में थोड़ा ढील दी है:
- अधिकतम रेगेक्स का आकार हर 5 उत्तरों पर 1 बाइट बढ़ता है । उत्तर N 29 + /N / 5tes बाइट तक का उपयोग कर सकता है ।
- प्रत्येक उत्तर का स्कोर (M / 30 + N / 5) N होगा
रेगेक्स गोल्फ में, आपको स्ट्रिंग्स के दो सेट दिए जाते हैं, और सबसे छोटा रेगेक्स बनाने के लिए कहा जाता है, जो पहले सेट में सभी स्ट्रिंग्स से मेल खाता है, लेकिन दूसरे सेट में सभी स्ट्रिंग्स पर विफल रहता है।
यह वही है जो हम करने जा रहे हैं, लेकिन हर बार जब कोई जवाब देता है, तो उनका रेगेक्स खुद को दो सेटों में से एक में जोड़ा जाएगा (अपनी पसंद का)। इसलिए, इस चुनौती में जवाब देने का सख्त आदेश है।
एक उदाहरण के माध्यम से चलते हैं:
- कहते हैं कि मैं इसे
abc
(जो मैं नहीं करूँगा) से शुरू करता हूं, और इसे मैच सेट में डाल देता हूं । - तब एक वैध दूसरा उत्तर होगा
a
, क्योंकि यह ऊपर से मेल खाता है (और ऐसे तार नहीं हैं जिन्हें अभी तक विफल होने की आवश्यकता है)। कहते हैं कि यह उत्तर असफल सेट में जाता है । - अब तीसरे जवाब के लिए मैच करना है
abc
लेकिन असफल रहना हैa
। एक संभावित तीसरा उत्तर इसलिए हैb
। आइए डालते हैं इसे मैच सेट में। - चौथा उत्तर अब मैच
abc
और हैb
, लेकिन असफल रहाa
। हम डुप्लिकेट उत्तरों को अस्वीकार कर देंगे, इसलिए एक वैध रेगेक्स होगाc|b
।
क्या महत्वपूर्ण है कि आपका उत्तर यथासंभव छोटा होना चाहिए। यह पहले कुछ उत्तरों के लिए तुच्छ हो सकता है, लेकिन एक बार जब हमें कुछ उत्तर मिल जाते हैं, तो जितना संभव हो उतने पात्रों में वांछित मैच पाने के लिए कठिन और कठिन होना चाहिए।
वास्तविक चुनौती के लिए, शुरू में मैच सेट होता है PPCG
और असफल सेट होता है [PPCG]
, और मैंने पहले ही जवाब दे दिया है।
उत्तर देना
इस चुनौती के बारे में समझने वाली महत्वपूर्ण बात यह है कि एक समय में केवल एक ही व्यक्ति उत्तर दे सकता है और प्रत्येक उत्तर उसके पहले वाले पर निर्भर करता है ।
एक ही के साथ दो उत्तर कभी नहीं होने चाहिए N
। यदि दो लोग एक साथ कुछ के लिए जवाब देने के लिए होते हैं N
, तो बाद में जवाब देने वाले (भले ही यह कुछ सेकंड का अंतर हो) उनके जवाब को विनम्रतापूर्वक हटा देना चाहिए।
इसे थोड़ा सुचारू रूप से चलाने के लिए, अपना उत्तर पोस्ट करते समय निम्नलिखित चरणों में रहने का प्रयास करें:
- सुनिश्चित करें कि किसी ने स्वतंत्र रूप से पिछले उत्तर की शुद्धता की पुष्टि की है (और एक टिप्पणी छोड़ दी है)।
- पिछले उत्तर में पाए गए दो टेस्ट सेट लें, और एक रेग्क्स लिखें जो एक सेट में सभी तार से मेल खाता है और दूसरे में कोई नहीं।
निम्नलिखित प्रारूप में अपना उत्तर पोस्ट करें:
# N. [regex flavour] - [regex size in bytes] [regex] [link to online regex tester] [notes, explanation, observations, whatever] ### The next answer has to match the following strings: [match set] ### And fail on these strings: [fail set]
N
आपके उत्तर की संख्या कहां है। कॉपी करें[match set]
और[fail set]
पिछले जवाब से, और करने के लिए अपने regex संलग्न एक उनमें से।यह चुनौती के लिए बिल्कुल महत्वपूर्ण है! मैंने बहीखाता पद्धति में मदद करने के लिए चुनौती के लिए एक डैशबोर्ड टूल प्रदान किया है, और यह उपरोक्त टेम्पलेट पर निर्भर करता है। (पोस्ट के नीचे देखें।)
- एक अन्य उपयोगकर्ता को अब आपके प्रस्तुतिकरण की समीक्षा करनी चाहिए और एक टिप्पणी "सही सत्यापित" छोड़नी चाहिए यदि आपका उत्तर सभी नियमों का पालन करता है (नीचे देखें)। यदि ऐसा नहीं होता है, तो उन्हें किसी भी तरह की खामियों की ओर इशारा करते हुए एक टिप्पणी छोड़ देनी चाहिए। फिर आपको उन मुद्दों को ठीक करने के लिए 15 मिनट का समय मिला है । यदि आप नहीं करते हैं, तो आपका उत्तर अमान्य माना जाएगा, हटा दिया जाना चाहिए, और कोई अन्य व्यक्ति पिछले एक अनुवर्ती उत्तर को पोस्ट कर सकता है। (यदि ऐसा होता है, तो आप किसी भी समय एक नया उत्तर प्रस्तुत करने के लिए स्वतंत्र हैं।)
ये नियम सख्त प्रतीत हो सकते हैं, लेकिन ये आवश्यक हैं कि चेन में कहीं भी अवैध जवाब से बचा जाए।
नियम
- एक उपयोगकर्ता केवल 4 घंटे की अवधि में एक जवाब प्रस्तुत कर सकता है। (यह उपयोगकर्ताओं को लगातार सवाल देखने और यथासंभव उत्तर देने से रोकने के लिए है।)
- एक उपयोगकर्ता एक पंक्ति में दो उत्तर प्रस्तुत नहीं कर सकता है। (उदा। जब से मैंने उत्तर 1 प्रस्तुत किया है मैं उत्तर 2 नहीं कर सकता, लेकिन मैं 3. कर सकता था)
- सत्यापित किए गए उत्तरों को संपादित न करें। (भले ही आपको इसे छोटा करने का कोई तरीका मिल जाए!)
- श्रृंखला में पहले एक गलती की खोज की जानी चाहिए (यानी अनुवर्ती उत्तर पोस्ट किए जाने के बाद), आपत्तिजनक उत्तर को हटा दिया जाना चाहिए और स्ट्रिंग्स के सेट से हटा दिया जाएगा कि नई प्रस्तुतियाँ विफल होनी चाहिए। हालाँकि , सभी उत्तर जो पोस्ट किए गए हैं, उन्हें प्रतिबिंबित करने के लिए नहीं बदला जाना चाहिए ।
- स्पष्ट रूप से एक स्वाद अपने regex में मान्य है। आप किसी भी स्वाद का चयन कर सकते हैं जो स्वतंत्र रूप से ऑनलाइन परीक्षण करने योग्य है। StackOverflow पर ऑनलाइन परीक्षकों की एक अच्छी सूची है । विशेष रूप से, Regex101 और RegexPlanet उपयोगी होना चाहिए, क्योंकि वे विभिन्न प्रकार के स्वादों का समर्थन करते हैं। कृपया अपने उत्तर में चुने गए परीक्षक का लिंक शामिल करें। परीक्षक में लॉबल
g
औरm
अल्टिलीन संशोधक पर स्विच करके , आप एक ही बार में सभी स्ट्रिंग्स का परीक्षण कर सकते हैं, प्रत्येक पंक्ति पर एक (इन संशोधक को आपके रेगेक्स आकार की ओर नहीं गिना जाता है, क्योंकि उन्हें किसी भी व्यक्तिगत स्ट्रिंग की आवश्यकता नहीं है)। - आपका रेगेक्स खाली नहीं होना चाहिए।
- जवाब के लिए आपका regex एन से अधिक समय नहीं होना चाहिए 29 + ⌈N / 5⌉ बाइट्स। Ie उत्तर 1 से 5 तक 30 बाइट्स (समावेशी) तक का उपयोग कर सकते हैं, 6 से 10 उत्तर 31 बाइट्स तक उपयोग कर सकते हैं ... उत्तर 31 से 35 बाइट्स 36 बाइट्स का उपयोग कर सकते हैं। अगले उत्तर का उपयोग कितने वर्णों को देखने के लिए डैशबोर्ड की जाँच करें।
- आपका रेगेक्स या तो टेस्ट सेट में किसी स्ट्रिंग के समान नहीं होना चाहिए।
- अपने सबमिशन या बाइट काउंट में सीमांकक शामिल न करें, भले ही संबंधित होस्ट भाषा उनका उपयोग करें। यदि आपका रेगेक्स संशोधक का उपयोग करता है, तो रेगेक्स आकार में प्रति बाइट प्रति एक बाइट जोड़ें। जैसे
/foo/i
4 बाइट्स होगी।
स्कोरिंग
प्रत्येक उत्तर के स्कोर को (M / (30 + N / 5)) N के रूप में परिकलित किया जाता है , जहाँ M बाइट्स में regex का आकार है, और N यह संख्या है। प्रत्येक उपयोगकर्ता का स्कोर उनके सभी उत्तरों का उत्पाद है। सबसे कम समग्र स्कोर वाला उपयोगकर्ता जीतता है। एक टाई की अप्रत्याशित घटना में, नवीनतम प्रस्तुत करने वाला उपयोगकर्ता जीत जाता है। मैं उस उपयोगकर्ता के नवीनतम उत्तर को स्वीकार करूंगा।
यदि आप योग अंक पसंद करते हैं, तो आप प्रत्येक उत्तर के अंकों की गणना एन * (लॉग (एम) - लॉग (30)) के रूप में कर सकते हैं और उन सभी उत्तरों को जोड़ सकते हैं। वही लीडरबोर्ड ऑर्डर देगा।
जवाब में एक उत्तर के स्कोर को शामिल करने की आवश्यकता नहीं है, बस एम की रिपोर्ट करें । प्रश्न के निचले भाग में चुनौती डैशबोर्ड स्कोर की गणना करेगा, और दो बहुत करीबी स्कोर की स्थिति में, मैं मनमाने ढंग से सटीक प्रकारों का उपयोग करके परिणामों की दोहरी जांच करूंगा।
ध्यान दें कि प्रत्येक उत्तर का स्कोर 1 से कम है, इसलिए आप एक नया उत्तर प्रदान करके अपने समग्र स्कोर में सुधार कर सकते हैं। हालाँकि, आपकी प्रत्येक प्रस्तुतियाँ जितनी छोटी होंगी, उतनी ही कुशलता से आप अपना स्कोर कम कर सकते हैं। इसके अलावा, बाद में उत्तर बढ़ते हुए घातांक के कारण कम स्कोर प्राप्त कर सकते हैं।
डैशबोर्ड
मैंने यहां पर ऑप्टिमाइज़र के काम के आधार पर स्टैक स्निपेट्स का उपयोग करते हुए थोड़ा डैशबोर्ड टूल लिखा है । मुझे उम्मीद है कि इससे हमें उत्तर-निर्भर चुनौतियों में कुछ आदेश प्राप्त करने में मदद मिलेगी।
यह चुनौती की वर्तमान स्थिति को प्रदर्शित करेगा - विशेष रूप से, यदि परस्पर विरोधी उत्तर हैं, यदि किसी उत्तर को सत्यापित करने की आवश्यकता है, या यदि अगला उत्तर पोस्ट किया जा सकता है।
यह स्कोर के साथ सभी उत्तरों की एक सूची भी तैयार करता है, साथ ही साथ सभी उपयोगकर्ताओं का लीडरबोर्ड भी। कृपया ऊपर दिए गए चुनौती प्रारूप से चिपके रहें, ताकि डैशबोर्ड आपके उत्तरों से संबंधित तार पढ़ सके। अन्यथा आप लीडरबोर्ड में शामिल नहीं हो सकते।
कृपया मुझे बताएं ( आदर्श रूप से चैट में ) यदि आप किसी कीड़े को पकड़ते हैं या कुछ विचार हैं कि उपकरण की उपयोगिता में सुधार कैसे किया जा सकता है।