जम्मू, 87 79 72 70 67 57 56 वर्ण
'( ) 'charsub|.|:(+/\@('('&=-')'&=)(],~' '$~[)"0])1!:1[1
कीबोर्ड से इनपुट लेता है। उदाहरण:
'( ) 'charsub|.|:(+/\@('('&=-')'&=)(],~' '$~[)"0])1!:1[1
((1 2)(3 (4 5) moo)) (i (lik(cherries)e (woohoo)))
4 5 cherries woohoo
1 2 3 moo lik e
i
स्पष्टीकरण:
यह स्पष्टीकरण मेरे कार्यक्रम के पहले संस्करण पर आधारित है:
|.|:('( ) 'charsub x)((' '$~{.@]),[{~{:@])"1(('('&([:+/=)-')'&([:+/=))\,.i.@#)x=.1!:1[1
x=.1!:1[1
कीबोर्ड से इनपुट लें और इसे x
बाद के लिए डालें
(('('&([:+/=)-')'&([:+/=))\,.i.@#)
स्ट्रिंग में सभी इंडोल की सूची बनाता है ( i.@#
) और टाँके ( ,.
) (('('&([:+/=)-')'&([:+/=))\
क्रिया के परिणाम के साथ मिलकर ।
(('('&([:+/=)-')'&([:+/=))\
इस क्रिया सभी स्ट्रिंग के उपसर्ग के लिए लागू किया जाता है (क्योंकि इनपुट पर hello
यह लागू होगा करने के लिए h
, he
, hel
, hell
, और hello
। यह एक है कांटा , जो खुला कोष्ठक की संख्या की गणना ('('&([:+/=)
और उसके बाद करीब कोष्ठक की संख्या घटा देती है ')'&([:+/=)
। यह मैं सूची प्रदान करती है स्ट्रिंग में इण्डोल और उस इंडेक्स के कैरेक्टर को आउटपुट में होना चाहिए। सिंपल इनपुट पर। यह मुझे निम्नलिखित जानकारी देता है।
(('('&([:+/=)-')'&([:+/=))\,.i.@#)x=.1!:1[1
(one(two(three)))
1 0
1 1
1 2
1 3
2 4
2 5
2 6
2 7
3 8
3 9
3 10
3 11
3 12
3 13
2 14
1 15
0 16
((' '$~{.@]),[{~{:@])"1
यह एक क्रिया है जो सूची मैं उत्पन्न करता है और इसका आउटपुट भी लेता है ('( ) 'charsub x)
(जो सभी ब्रैकेट को स्थान के साथ बदलने के लिए एक स्ट्रिंग प्रतिस्थापन करता है x
)। यह सूची के प्रत्येक आइटम की पूंछ लेता है {:@]
और इसे चरित्र प्राप्त करने के लिए एक इंडेक्स के रूप में स्ट्रिंग में उपयोग करता है [{~{:@]
। फिर यह ,
सूची में प्रत्येक आइटम के प्रमुख द्वारा इंगित स्थानों की संख्या के साथ इसे उपसर्ग करता है (' '$~{.@])
। पिछले उदाहरण पर यह मुझे देता है:
('( ) 'charsub x)((' '$~{.@]),[{~{:@])"1(('('&([:+/=)-')'&([:+/=))\,.i.@#)x=.1!:1[1
(one(two(three)))
o
n
e
t
w
o
t
h
r
e
e
मैं फिर सरणी को स्थानांतरित करता हूं |:
और |.
वांछित आउटपुट प्राप्त करने के लिए इसे उल्टा करता हूं ।
((1 2))))))))))3
नकारात्मक हाइट निषिद्ध होने पर इनपुट अमान्य होना चाहिए।