आपकी चुनौती इन नियमों के अनुसार ब्रेनफक कोड को छोटा करना है:
- जो कुछ भी नहीं है उसे हटा दें
+-><[].,
। - लगातार
+
या-
वर्णों के किसी भी समूह के लिए , यदि+
s और-
s की मात्रा समान है, तो उन्हें हटा दें। - ऊपर जैसा है वैसा ही करें, लेकिन साथ
>
और<
। +-><
यदि वे कुछ नहीं करते हैं तो पात्रों के दृश्यों को हटा दें । उदाहरण के लिए, आपको हटा देना चाहिए+>-<->+<
। (यह लागू करने के लिए सबसे कठिन और सबसे कठिन हो सकता है।) सुनिश्चित करें कि आपको कोई झूठी सकारात्मकता नहीं मिलती है, जैसे+>-<+>-<
, जिसे हटाया नहीं जाना चाहिए।
परीक्षण के मामलों:
इनपुट
++++++[->++++++<]>. prints a $
[-]< resets tape
>,[>,]<[.<] reverses NUL terminated input string
++-->><< does nothing
उत्पादन
++++++[->++++++<]>.[-],[>,]<[.<]
इनपुट
Should disappear: ++>>+<+++<->-->-<<->-<
Should disappear: +++>-<--->+<
Should stay: +++>-<+>---<
उत्पादन
+++>-<+>---<
आप इनपुट और आउटपुट को स्वीकार कर सकते हैं, हालांकि आप चाहेंगे - स्टडिन / स्टडआउट, एक फंक्शन इत्यादि, लेकिन इनपुट हार्डकोड नहीं हो सकता है।
यह कोड-गोल्फ है , इसलिए चरित्र गणना में सबसे छोटा कोड जीत जाएगा।
+++>-<+>---<
,? इसे अनावश्यक सूचक आंदोलन से बचने के लिए छोटा किया जा सकता है, लेकिन अपेक्षित आउटपुट इसे अपरिवर्तित छोड़ देता है। प्रश्न और उत्तर दोनों को देखने के आधार पर मेरी समझ यह है कि डॉर्कनब लूज के साथ लिया जा रहा है। हम किसी भी नो-सेशन सन्निहित को खत्म करना होगा +-><
के रूप में स्पष्ट रूप से कहा दृश्यों, और कहा कि परे यह आपके उदाहरण के रूप में अतिरिक्त कम करने से ऐसा करने के लिए अनुमति दी जाती है ++>>++<<--
, और हम भी लंबे समय के रूप rearrangements कर सकते हैं के रूप में वे कोड, जैसे की कार्यक्षमता में परिवर्तन नहीं करते >+<+
में +>+<
।
+>-<->+<
। (इसे लागू करने के लिए सबसे कठिन और सबसे कठिन हो सकता है।) सुनिश्चित करें कि आपको कोई झूठी सकारात्मकता नहीं मिलती है, जैसे +>-<+>-<
। जिसे हटाया नहीं जाना चाहिए। ” - यह अस्पष्ट की तरह है
++>>++<<--
आउटपुट होना चाहिए>>++<<
, और वह कवर नहीं किया गया था। कृपया अधिक परीक्षण मामले जोड़ें।