तीसरे पूर्णांक से यदि लगातार तीन पूर्णांकों का मिलान करने वाला एक आवेग पहले दो का योग है


27

एक नियमित अभिव्यक्ति लिखें जो एक दिए गए स्ट्रिंग से मेल खाती है जिसमें तीन गैर-नकारात्मक, अंतरिक्ष-पृथक पूर्णांक शामिल हैं यदि और केवल अगर अंतिम पूर्णांक पिछले दो का योग है। उत्तर किसी भी अंक प्रणाली के पूर्णांक 2 और 10 के बीच मूलांक वाले हो सकते हैं।

परीक्षण के मामलों

ये विफल होना चाहिए:

0 1 2
10 20 1000

ये मेल खाना चाहिए:

10 20 30
28657 46368 75025
0 0 0

नियम

आपके उत्तर में एकल रेगेक्स शामिल होना चाहिए, बिना किसी अतिरिक्त कोड के (सिवाय, वैकल्पिक रूप से, आपके समाधान कार्य करने के लिए आवश्यक रेगेक्स संशोधक की सूची)। आपको अपनी भाषा के regex स्वाद की विशेषताओं का उपयोग नहीं करना चाहिए, जो आपको होस्टिंग भाषा में कोड को लागू करने की अनुमति देता है (उदाहरण के लिए पर्ल का ई-कॉमर्स)।

कृपया अपने उत्तर में अपने रेगेक्स स्वाद को निर्दिष्ट करें।

यह रेगेक्स गोल्फ है, इसलिए बाइट्स में सबसे छोटा रेगेक्स जीतता है। यदि आपकी भाषा को नियमित अभिव्यक्तियों को निरूपित करने के लिए सीमांकक (आमतौर पर /..//) की आवश्यकता होती है, तो परिसीमनकर्ता स्वयं को न गिनें। यदि आपके समाधान में संशोधक की आवश्यकता है, तो प्रति संशोधक एक बाइट जोड़ें।

रेगेक्स-गोल्फिंग नियमों के लिए मार्टिन एंडर और जायते को श्रेय ।


मेरे पास यह विश्वास करने का कारण है कि रेगेक्स के साथ पूर्णांकों को खोजने और बढ़ाने के लिए मार्टिन एंडर के समाधान के आधार पर यह संभव है ।


1
आप इस चुनौती से पहले मौजूद किसी भी रेगेक्स स्वाद का उपयोग कर सकते हैं, यह नियम वर्तमान सर्वसम्मति को प्रतिबिंबित नहीं करता है, जो कहता है कि चुनौती देने के बाद बनाई गई या अपडेट की गई भाषाएँ (और इसलिए रेगेक्स फ्लेवर) अभी भी प्रतिस्पर्धा कर सकती हैं।
एरिक आउटोलॉफ़र

1
सम्बंधित। (मुझे लगता है कि इसका उत्तर कुछ हद तक जिम्मी के .NET उत्तर के समान होगा।)
मार्टिन एंडर

@EriktheOutgolfer वास्तव में सर्वसम्मति है कि चुनौती के बाद बनाई गई भाषाएँ COMPETE हो सकती हैं? यह पूरी तरह बकवास है
edc65


पर्ल 5 का /eसंशोधक केवल प्रतिस्थापन पर लागू होता है, और बाहरी कोड को चलाने का एकमात्र तरीका नहीं है। इसके अलावा यह पर्ल 6 को पूरी तरह से अयोग्य घोषित करता है क्योंकि एक रेक्सक्स अतिरिक्त सिंटैक्स के साथ एक विधि है। (इसका कारण यह है कि रेगेक्स को पढ़ना और लिखना आसान बनाता है) परिणामस्वरूप आर्कटिक रेगेक्स में आवश्यक सभी सुविधाओं की आवश्यकता नहीं है (या शामिल) जैसा कि आपने पर्ल 6 कोड में डाला है। (यदि आप केवल विशिष्ट कोड को /^(\d+)**3%' '$ <?{$0[2]==[+] $0[0,1]}>/फिर से /^(\d+)' '(\d+)' '(\d+)$ <?{$2==$0+$1}>//^(\d+)' '(\d+){}" {$0+$1}"$/
लिखने के

जवाबों:


15

पर्ल / पीसीआरई: 2,685 बाइट्स

^?!? (!? * (*? = (\ D *?)? (?:? (? =? \ D + 0 * + (\ d *?)? (\ D (? (4) \ 4)) 0? * (\ d *।?) (\ d \ 6? +) $) \ d) +)) (? =? (? (?!? \ _?: (? =? = \ d + 0) * 3 (? (7)? +) \ d)) (? = \ d (\ d * 0 * \ 3 \ 8)) (; = 0 \ [[९]] | १ \ ९ [|] | २ \ ९ [|] | ३ \ _ ९ [6] | 4 \ 9 [5] | 5 \ 9 [4] | 6 \ 9 [3] | 7 \ 9 [2] | 8 \ 9 [1] | 9 \ 9 [0]) \ घ) * + +? = \ d (\ d * 0 * \ 3 \ 8; +)) (? = [5-9] \ 10 [5-9] | 1 \ 10 [9] | 2 \ 10 [89] 3 \ 10 [7-9] | 4 \ 10 [6-9] | 6 \ 10 [4] | 7 \ 10 [34] | 8 \ 10 [2-4] | 9 \ 10 [1-4]) ) (? = \ d + \ _ d + 0 * \ 1 \ 3 \ 6 $)। | (? (? -? * + \ _ 3) \ d +) (? =? \ _ d * (\ 2। \ _ 4) (?) 0 * +) \ d + $) (? (? = 9 * \ 11) (?: 9 (? = \ D * \ _ 12 [1] (\ 13? +0)) * *? (? = \ 11) \ 11 \ 12 [1] \ 13 + \ 6 $ |? (? (\ घ) (= \ d * \ 12 (\ 15 + \ 14))?) * (= \ घ (\ d *? \ 12 \ 15 +)) (= 0 \ 16 [1] |? 1 \ 16 [2] | 2 \ 16 [3] | 3 \ 16 [4] | 4 \ 16 [5] | 5 \ 16 [ 6] | 6 \ 16 [7] | 7 \ 16 [8] | 8 \ 16 [9]) \ घ (?? 9 (= \ d * \ 12 \ 15 + \ घ (\ 17 +0? ))) *? \ 11 \ 12 \ 15? + \ _ \ _ 17 +? 6 $))) \ 1?:? (? (= (D) \ d * 0 * + 3 ((\ 19)? +) \ d) \ d * 0 * + \ 5 (((21; +) \ d)) (? = \ d (\ d * 0 * + \ 3 \ 20) \ d (\ d * 0 * * + \ 5 \ 22)) ((?! \ 18 (?:(? = \ d + 0 * + \ _ 3 \ 19 ((\ 25? +) \ d)) (? = \ d (\ d * 0 * + 3 \ 19 \ 26)) (? = 0 \ 27 [? 9] | 1 \ 27 [8] | 2 \ 27 [7] | 3 \ 27 [6] | 4 \ 27 [5] | 5 \ 27 [4] | 6 \ 27 [3] | 7 \ 27 [2 ] | [\ २] [१] | ९ \ २ \ [०]) \ d) * + (? = = \ D (\ d * ० * + ३ \ _ १ ९ \ २६ +?)) (? = [५- ९] ] \ 28 [5-9] | 1 \ 28 [9] | 2 \ 28 [89] | 3 \ 28 [7-9] | 4 \ 28 [6-9] | 6 \ 28 [4] | 7 \ 28 [34] | 8 \ 28 [2-4] | 9 \ 28 [1-4])) (= 1 \ 23 (? 1 \ 24 [2] | 2 \ 24 [3] | 3 \ 24 [4] | 4 \ 24 [5] | 5 \ 24 [6] | 6 \ 24 [7] | 7 \ 24 [8] | 8 \ 24 [9] | 9 \ 24 [0]) | 2 \ 23 (: 1 \ 24 [3] | 2 \ 24 [4] | 3 \ 24 [5] | 4 \ 24 [6] | 5 \ 24 [7] | 6 \ 24 [8] | 7 \ 24 [9 ] | 8 \ 24 [0] | 9 \ 24 [1]) | 3 \ 23 (: 1 \ 24 [4] | 2 \ 24 [5] | 3 \ 24 [6] | 4 \ 24 [7] | 5 \ 24 [8] | 6 \ 24 [9] | 7 \ 24 [0] | 8 \ 24 [1] | 9 \ 24 [2]) | 4 \ 23 (: 1 \ 24 [5] | 2 \ 24 [6] | 3 \ 24 [7] | 4 \ 24 [8] | 5 \ 24 [9] | 6 \ 24 [0] | 7 \ 24 [1] | 8 \ 24 [2] | 9 \ 24 [3]) | 5 \ 23 (: 1 \ 24 [6] | 2 \ 24 [7] | 3 \ 24 [8] | 4 \ 24 [9] | 5 \ 24 [0] | 6 \ 24 [1] | 7 \ 24 [2] | 8 \ 24 [3] | 9 \ 24 [4]) | 6 \ 23 (: 1 \ 24 [7] | 2 \ 24 [8] | 3 \ 24 [9] | 4 \ 24 [0] | 5 \ 24 [1] | 6 \ 24 [2] | 7 \ 24 [3] | 8 \ 24 [4] | 9 \ 24 [5]) | 7 \ 23 (: 1 \ 24 [8] | 2 \ 24 [9] | 3 \ 24 [0] | 4 \ 24 [1] | 5 \ 24 [2] | 6 \ 24 [3] | 7 \ 24 [4 ] | 8 \ 24 [5] | 9 \ 24 [6]) | 8 \ 23 (?:1 \ 24 [9] | 2 \ 24 [0] | 3 \ 24 [1] | 4 \ 24 [2] | 5 \ 24 [3] | 6 \ 24 [4] | 7 \ 24 [5] | 8 \ 24 [6] | 9 \ 24 [7]) | 9 \ 23 (: 1 \ 24 [0] | 2 \ 24 [1] | 3 \ 24 [2] | 4 \ 24 [3] | 5 \ 24 [4] | 6 \ 24 [5] | 7 \ 24 [6] | 8 \ 24 [7] | 9 \ 24 [8]) | 0 \ 23 (\ घ) \ 24 \ 29 | (\ घ) \ 23 [0] \ 24 \ 30) | (= 1 \ 23 (? 0 \ 24 [2] | 1 \ 24 [3] | 2 \ 24 [4] | 3 \ 24 [5] | 4 \ 24 [6] | 5 \ 24 [7] | 6 \ 24 [8] | 7 \ 24 [9] | 8 \ 24 [0] | 9 \ 24 [1]) | 2 \ 23 (: 0 \ 24? [3] | 1 \ 24 [4] | 2 \ 24 [5] | 3 \ 24 [6] | 4 \ 24 [7] | 5 \ 24 [8] | 6 \ 24 [9] | 7 \ 24 [ 0] | 8 \ 24 [1] | 9 \ 24 [2]) | 3 \ 23 (: 0 \ 24 [4] | 1 \ 24 [5] | 2 \ 24 [6] | 3 \ 24 [7 ] | 4 \ 24 [8] | 5 \ 24 [9] | 6 \ 24 [0] | 7 \ 24 [1] | 8 \ 24 [2] | 9 \ 24 [3]) | 4 \ 23 (? : 0 \ 24 [5] | 1 \ 24 [6] | 2 \ 24 [7] | 3 \ 24 [8] | 4 \ 24 [9] | 5 \ 24 [0] | 6 \ 24 [1] | 7 \ 24 [2] | 8 \ 24 [3] | 9 \ 24 [4]) | 5 \ 23 (: 0 \ 24 [6] | 1 \ 24 [7] | 2 \ 24 [8] | 3 \ 24 [9] | 4 \ 24 [0] | 5 \ 24 [1] | 6 \ 24 [2] | 7 \ 24 [3] | 8 \ 24 [4] | 9 \ 24 [5]) | 6 \ 23 (: 0 \ 24 [7] | 1 \ 24 [8] | 2 \ 24 [9] | 3 \ 24 [0] | 4 \ 24 [1] | 5 \ 24 [2] | 6 \ 24? [3] | 7 \ 24 [4] | 8 \ 24 [5] | 9 \ 24 [6]) | 7 \ 23 (: 0 \ 24 [8] | 1 \ 24 [9] | 2 \ 24 [ 0] | 3 \ 24 [1] | 4 \ 24 [2] | 5 \ 24 [3] | 6 \ 24 [4] | 7 \ 24 [5] | 8 \ 24 [6] | 9 \ 24 [7 ]) | 8 \ 23 (?:0 \ 24 [9] | 1 \ 24 [0] | 2 \ 24 [1] | 3 \ 24 [2] | 4 \ 24 [3] | 5 \ 24 [4] | 6 \ 24 [5] | 7 \ 24 [6] | 8 \ 24 [7] | 9 \ 24 [8]) | 9 \ 23 (: 0 \ 24 [0] | 1 \ 24 [1] | 2 \ 24 [2] | 3 \ 24 [3] | 4 \ 24 [4] | 5 \ 24 [5] | 6 \ 24 [6] | 7 \ 24 [7] | 8 \ 24 [8] | 9 \ 24 [9]) | 0 \ 23 (: 0 \ 24 [1] | 1 \ 24 [2] | 2 \ 24 [3] | 3 \ 24 [4] | 4 \ 24 [5] | 5 \ 24 [6] | 6 \ 24 [? ] |] \ २४ [|] | | \ २४ [९] | ९ \ २४ [०])]) \ _) + \ _ ^ ० + \ ० * (\ d +) \ ० * * जी \ _- १ } $ | ^ 0 * (\ d +) \ 0+ \ 0 * \ g {-1} $)) +

इसे ऑनलाइन आज़माएं!

मैं regex से एक अंतराल के बाद मुश्किल चुनौतियों के लिए prowl पर रहा हूं, और बस इस डोज में ठोकर खाने के लिए हुआ। सत्यापित करना (पर्ल / पीसीआरई के साथ) कुछ ऐसा है जिसके बारे में मैंने पहले सोचा है, लेकिन तुरंत असंभव या मेरी क्षमता से परे खारिज कर दिया। हालाँकि, मैंने अभी इस पर एक और दरार ले ली है और मैं यह कहने के लिए काफी रोमांचित हूं कि मैंने वास्तव में यह किया है!

जब मैंने इसे लिखा था, तो लघु एल्गोरिदम और समग्र मिलान तकनीक पर विचार करने के अलावा मैंने इसे वास्तव में गोल्फ नहीं दिया था। मैं वास्तव में बहुत खुश हूं मैंने इसे पूरा किया: डी

यदि लोग रुचि रखते हैं, तो मैं टिप्पणी जोड़ सकता हूं और समझा सकता हूं कि यह कैसे काम करता है।

संपादित करें: मैंने इस बारे में अपने ब्लॉग पर एक विस्तृत पोस्ट बनाई, स्पष्टीकरण और टिप्पणियों के साथ :) आनंद लें: http://www.drregex.com/2018/09/a-regex-i-submitted-to-reddit-climbed.html


4
निश्चित रूप से कुछ स्पष्टीकरण में रुचि!
etene

2
@etene मैंने पोस्ट को पूरी तरह से लिखने के लिए लिंक के साथ संपादित किया: D
jaytea

1
धन्यवाद, यह एक दिलचस्प पढ़ा जाएगा!
इथेन

6

.NET स्वाद, 139 111 106 + 1 = 107 बाइट्स

जरूरत RightToLeftसंशोधक r। बाइनरी में इनपुट।

(?(2)!)^\5 \7 ((?(2)()(?(2)!)(?<-2>){2})(0|(?<-2>1))(?<=(((0|(?<2>1)|\b)(?=.*(?<=(\5).*))?\7?) \d*){2}))+$

इसे ऑनलाइन आज़माएं! ( रेटिना का उपयोग करते हुए ।)

समूहों के संतुलन के लिए याय। मैं इसे बाद में समझाता हूँ ...

दशमलव संस्करण, 340 243 + 1 = 244 बाइट्स

(?(2)!)^\5 \7 ((?(2)()(?(2)!)(?<-2>){10})(0|(?<-2>1|(?<-2>2|(?<-2>3|(?<-2>4|(?<-2>5|(?<-2>6|(?<-2>7|(?<-2>8|(?<-2>9))))))))))(?<=(((0|(?<2>1|(?<2>2|(?<2>3|(?<2>4|(?<2>5|(?<2>6|(?<2>7|(?<2>8|(?<2>9)))))))))|\b)(?=.*(?<=(\5).*))?\7?) \d*){2}))+$

इसे ऑनलाइन आज़माएं!


3
"मैं इसे बाद में समझाऊंगा" कितना बाद में?
Οपूर्ण

3
@ @Urous बहुत बाद में जब यह निकला।
मार्टिन एंडर

1

.NET, 96 बाइट्स

^\4 \6((?(2)()(?(2)^)(?<-2>){2}| ?)(0|(?<-2>1))(?<=((0|(?<2>1)|)\4?) .*((0|(?<2>1)|)\6?) .*))+$

झंडा: r

इसे ऑनलाइन आज़माएं!

दशमलव संस्करण, 238 बाइट्स

^\5 \6(?<-6>)((?(2)()(?(2)^)(?<-2>){10}| ?)((?<-2>[1469]|(?<-2>[27]))|[0358])(?([5-9])(?<-2>){5})(?([3489])(?<-2>){3})(?<=(((((?=[5-9](?<2>){5}|)(?=[3489](?<2>){3}|)((?<2>[1469]|(?<2>[27]))|.))?(?( .*)\6?(?<-6>)?|\5?(?<-5>)))) .*){2}))+$

झंडा: r

इसे ऑनलाइन आज़माएं!

मार्टिन के जवाब के समान।

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