( इस चुनौती से काफी प्रेरित )
मूल चुनौती में आप एक क्षैतिज जिपर बनाने के लिए थे, हालांकि, मेरे हूडि को नीचे देखते हुए, मेरी ज़िप बहुत अधिक ऊर्ध्वाधर है (और थोड़ा टूटी हुई): पी
इनपुट
आपको किसी भी प्रारूप में एक स्ट्रिंग ( s), और पूर्णांक ( aऔर b) की एक जोड़ी दी जाएगी । कहाँ पे:
a < (length-of-s / 2)
b <= ((length-of-s / 2) - (a + 1)) / 6
आउटपुट और स्कोरिंग
आपका कार्यक्रम एक पूर्ण कार्यक्रम या एक फ़ंक्शन हो सकता है जो आपके द्वारा चुने गए सही स्वरूपण या सरणी (एक आइटम प्रति पंक्ति) के साथ एक स्ट्रिंग पैदा करता है। लीडिंग और ट्रेलिंग स्पेस और न्यूलाइन्स तब तक वैकल्पिक हैं जब तक आउटपुट के पात्र सभी लाइन अप करते हैं। जैसे।
["f r"],["u e"],["l p"],["l p"],["y i"],[" o z "],[" p n "],[" e "]
या
"f r\nu e\nl p\nl p\ny i\n o z \n p n \n e "
टेस्ट केस 1 के लिए स्वीकार्य आउटपुट हैं
स्टैंडर्ड लूपोल्स को निषिद्ध किया गया है और बाइट्स जीत में सबसे छोटा कोड है। बिना स्पष्टीकरण के कोई भी उत्तर जीतने में सक्षम नहीं होगा।
व्याख्या
जिपर बनाने के लिए आपको पहले किसी भी व्हाट्सएप या न्यूलाइन वर्ण को स्ट्रिंग से निकालना होगा। और फिर इसे आधा में मोड़ो जैसे कि (अधिक के लिए परीक्षण केस 1 देखें)
abcde fgh ij klmnopqr नीचे दो तार बन जाते हैं, दूसरी छमाही को उल्टा नोटिस करें।
abcdefghi तथा rqponmlkj
फिर प्रत्येक स्ट्रिंग की शुरुआत में हम एक ही अनुक्रमित वर्ण को प्रत्येक स्थान से एक स्थान पर एक स्थानापन्न वर्ण के साथ रखते हैं, जो निम्न प्रकार से निर्धारित होता है:
[0] a r -- (a-3) five spaces
[1] b q -- (a-2) three spaces
[2] c p -- (a-1) one space
[3] d -- (a)
[4] o
[5] e
[6] n
etc...
जो हमारे जिपर के लिए आधार बनाता है। अब पूर्णांक aऔर b।
aहमारे ज़िप का स्थान है। यह निर्धारित करने के लिए कि ज़िप कहां स्थित है हम अपने आउटपुट लाइनों के सूचकांक का उपयोग अपने ज़िप को बंद करने के बिंदु के रूप में करते हैं। उदाहरण के लिए [3]मेरे उपरोक्त उदाहरण में वर्ग कोष्ठक है जहाँ ज़िप है।
हमारे जिपर के करीब पहुंचने से पहले, उपरोक्त जिपर को पांच स्थान के अंतराल पर रहना चाहिए, जब तक a-2कि वह उस स्थान पर न पहुंच जाए जहां वह 3 स्थानों पर बंद हो जाता है और a-1जहां वह 1 स्थान पर बंद हो जाता है। केवल स्पष्ट होने के लिए, उपरोक्त उदाहरण में a = 3(0-अनुक्रमित)
bमेरे जिपर में छेद की संख्या है। ज़िप में एक छेद बनाने के लिए, हम कुछ रिक्ति के साथ फिर से स्ट्रिंग को विभाजित करते हैं।
उदाहरण छेद के सूचकांक के साथ शुरू करने के रूप में hहम h-1एक स्थान के अंतर को बढ़ाते हैं , h3 रिक्त स्थान और h+1एक स्थान पर वापस, छोड़ते हैं h-2और h+2प्रति पंक्ति में केवल एक वर्ण के साथ , क्योंकि वे छेद के हिस्से के रूप में गिने जाते हैं।
ज़िप के बाद और प्रत्येक छेद के बीच में एक वर्ण का अंतर होना चाहिए ताकि हमारा ज़िप छेद के बीच पूरी तरह से जुड़ा हुआ दिखे।
आपको छिद्रों की अनुक्रमणिका चुनने के लिए मिलता है, लेकिन वे सभी जिपर के 'बंद' खंड के भीतर मौजूद होना चाहिए।
Again using 'abcdefghi' and 'rqponmlkj'
[0] a r -- (open)
[1] b q -- (closing)
[2] c p -- (closing)
[3] d -- zip
[4] o -- gap
[5] e -- start of hole (h-2)
[6] n f -- one space (h-1)
[7] m g -- three spaces (hole h)
[8] l h -- one space (h+1)
[9] k -- end of hole (h+2)
[10] i -- gap
[11] j
मुझे उम्मीद है कि सब समझ में आता है, अगर दूर नहीं पूछें। प्रश्नों की प्रत्याशा में, आप देख सकते हैं कि pमेरे दूसरे उदाहरण में चरित्र दूसरे विकल्प में मौजूद है, हालांकि, इसकी लाइन की शुरुआत में दिखाई देता है, यह इरादा है, आपको 1-2-1-2 के अनुक्रम का पालन करना होगा- 1-2, आउटपुट में इसकी स्थिति की परवाह किए बिना प्रत्येक आधे-बारी से एक चरित्र ले रहा है।
परीक्षण के मामलों
"fully open zipper", 7, 0 | "fully closed zipper", 0, 0
fullyope reppizn | fullyclos reppizde
|
f r *Note: i particularly like this | f
u e example as it shows the reversing | r
l p of the second half of the string | u
l p causes the words to wrap from top | e
y i left to the bottom and back up | l
o z the right side | p
p n | l
e | p
| y
| i
| c
| z
| l
| d
| o
| e
| s
- कॉलम 1: "मूर्खतापूर्ण लंबे अटूट जिपर जो किसी भी सभ्य हुडी पर मौजूद नहीं होने चाहिए", 24, 0
- कॉलम 2: "लोरेम इप्सम डोलर अमेट, कंसेटेटुर एडिपिसिंग एलीट। मौरिस फौसीबस मोलेस्टी मील। अलिकम नेक फ्रिंजिला इप्सम", 15, 5
:
s e | L m
t i | o u
u d | r s
p o | e p
i o | m i
d h | i a
l t | p l
y n | s l
l e | u i
o c | m g
n e | d n
g d | o i
u y | l r
n n | o f
b a | r c
r n | s
o o | e
k t | i
e s | n t
n i | m a
z x | a m
i e | u
p t | e
p n | q
e | t
d | i
r | ,
l | l c
t | A o
u | . n
h | i
o | s
a | m
h | e e
t | c i
s | t t
| e
| s
| t
| s
| u
| l
| r
| o
| a
| m
| d
| s
| i
| u
| p
| b i
| i s
| c c
| u
| i
| a
| n
| f
| g
| s
| e
| i
| l r
| i u
| t a
| .
| M
संपादित करें: परीक्षण मामले जोड़े गए
"abcde fgh ij klmnopqr","3","1"
a r
b q
c p
d
o
e
n f
m g
l h
k
i
j