यह चुनौती गणित से प्रेरित तथ्य है। प्रोग्रामिंग नहीं है ।
एक तथ्य के लिए गणितीय संकेतन, या एक तथ्य एक विस्मयादिबोधक चिह्न है !। विस्मयादिबोधक चिह्न notकई प्रोग्रामिंग भाषाओं में भी एक सामान्य प्रतीक है ।
चुनौती:
एक स्ट्रिंग लें, जिसमें अंक और वर्ण हों: + !इनपुट के रूप में और निम्नलिखित को आउटपुट करें:
विस्मयादिबोधक चिह्न के सामने सब कुछ एक गणितीय अभिव्यक्ति के रूप में मूल्यांकन किया जाना चाहिए, इसलिए 2+2होगा 4।
एक एकल विस्मयादिबोधक चिह्न के बाद सब कुछ सामान के रूप में जोड़ा जाना चाहिए जो इसके सामने है, इसलिए: 2+2!5देना चाहिए 45, क्योंकि 2+2=4, और 5एक सहायक है। 2+2!5+5देना चाहिए 410।
के बाद से !भी मतलब है not, कुछ भी है कि है नहीं इस तथ्य के बाद एक सहायक चाहिए नहीं संलग्न किया। तो, 2+2!!5देना चाहिए 4, क्योंकि 5एक सहायक नहीं है। अब, not(not(true))==trueतो 2+2!!!5देना चाहिए 45। 2+2!!5!5+5देना चाहिए: 410क्योंकि 2+2=4, उसके बाद एक भाज्य और उसके बाद !5!5+5। पहला 5एक तथ्य नहीं है, लेकिन 5+5एक और विस्मयादिबोधक चिह्न के बाद है, और इसलिए एक तथ्य है, फिर भी।
स्पष्टीकरण:
- विस्मयादिबोधक चिह्न एक
+तरफ दोनों तरफ नहीं होंगे। +संख्याओं के लिए अग्रणी नहीं होगा (यह5, नहीं+5)।- यदि आप पहले के सामने अभिव्यक्ति का परिणाम हैं, तो आप वैकल्पिक रूप से एक अग्रणी शून्य शामिल कर सकते हैं
!। दोनों4और04इनपुट के लिए स्वीकार किए जाते हैं उत्पादन कर रहे हैं:0+0!4
कार्यकारी सारांश: प्रत्येक राशि का मूल्यांकन करें ( !विभाजक के रूप में इलाज )। फिर सभी संख्याओं को छोड़ दें जो सम संख्या के बाद दिखाई देते हैं !(स्ट्रिंग की शुरुआत से गिनती)। फिर सभी को हटा दें !।
परीक्षण के मामलों:
!
<- Empty string
5
5
12!
12
!87
87
!!5
<- Empty string
5+5!2+2
104
5+5!!2+2
10
1!2!3!4!5!6!7!8!9
12468
10+10!!2+2!!3+3!4+4
208
2!!3!5
25
2!!3!5!7
25
10!!!!!!!5
105
यह कोड-गोल्फ है इसलिए बाइट्स में सबसे छोटा कोड (प्रत्येक भाषा में) जीतता है! स्पष्टीकरण को दृढ़ता से प्रोत्साहित किया जाता है!
25(देखें जोड़ा गया परीक्षण मामला)। 2!!3!5!7इससे भी महत्वपूर्ण बात यह है कि 25, क्योंकि !बाईं ओर सम संख्या है 7(इसलिए आप संख्या के ठीक सामने रन को नहीं गिनेंगे, लेकिन इसके सभी !बाएं)।
Row?