(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
इसे ऑनलाइन आज़माएं!
चूंकि हर कोई अपने 50 बाइट समाधान यहाँ पोस्ट कर रहा है, मेरा है (मेरे पास एक 48 बाइट है लेकिन यह DjMcMayhem का एक सरल संशोधन था, इसलिए मैंने इसे पोस्ट करने के लायक महसूस किया)
व्याख्या
यह उत्तर बड़े पैमाने पर मूल्य रद्द करने का उपयोग करता है।
अन-गोल्फ यह जैसा दिखता है
([][()])({<{}({}[({})])>{<{}>()(<()>)}{}<([][()])>}<>)
यहां हम डेल्टा की गणना करते हैं, जब तक कि स्टैक में एक आइटम नहीं बचा है, जब तक कि डेल्टा शून्य न हो, हर बार हम आंतरिक लूप से एक मान जमा करते हैं।
यह इसे करने का एक बहुत सीधा आगे तरीका है।
इस गोल्फ को बनाने के लिए हम मूल्य रद्द करना शुरू करते हैं। पहले एक और एक है कि किसी भी कठोर मस्तिष्क के लिए स्पष्ट होना चाहिए गोल्फ खिलाड़ी स्टैक हाइट्स है। यह एक जाना माना तथ्य है कि
([])({<{}>...<([])>}{})
के समान है
(([]){[{}]...([])}{})
जब मूल्यों को एक द्वारा संशोधित किया जाता है, तो वही धारण करता है। यह हमें देता है
(([][()]){[{}]<({}[({})])>{<{}>()(<()>)}{}([][()])}<>)
आप देख सकते हैं कि इसने हमें बाइट्स भी नहीं बचाए, लेकिन हम आगे बढ़ते ही इसे ज्यादा उपयोगी नहीं समझेंगे।
यदि आप एक बयान देखते हैं तो हम एक और कमी कर सकते हैं
<(...)>{<{}> ...
आप वास्तव में इसे कम कर सकते हैं
[(...)]{{} ...
यह काम करता है क्योंकि अगर हम लूप में प्रवेश करते हैं [(...)]और {}रद्द कर देंगे, और यदि हम [(...)]पहले से ही शून्य नहीं हैं, तो पहले से ही रद्द करने की आवश्यकता नहीं है। चूंकि हमारे पास हमारे कोड में इस पैटर्न की घटना है इसलिए हम इसे कम कर सकते हैं।
(([][()]){[{}][({}[({})])]{{}()(<()>)}{}([][()])}<>)
इसने हमें 2 बाइट्स बचाए लेकिन इसने एक दूसरे के बगल में दो नेग भी लगाए। ये हमें एक और 2 को बचाने के लिए संयोजित किया जा सकता है।
(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
और यही हमारा कोड है।
Falseबजाय मुद्रित किया जाता है?