इस चुनौती से प्रेरित है ।
लक्ष्य:
पहले से कॉन्फ़िगर किए गए स्विचबोर्ड और इंडेक्स की सूची को देखते हुए, दिए गए इंडेक्स पर स्विच को पलटना।
एक स्विचबोर्ड कुछ नंबरों के स्विच ( v
या ^
) से बना होता है -
और इसे अलग-अलग लंबाई की पंक्तियों में व्यवस्थित किया जाता है। यहाँ एक उदाहरण स्विचबोर्ड है:
-v-^-v-
-^-v-
-v-^-v-
विपरीत करने के लिए / एक स्विच साधन से इसे बदलने फ्लिप v
करने के लिए ^
, या से ^
करने के लिए v
।
स्विच को बाएं से दाएं, ऊपर से नीचे की ओर अनुक्रमित किया जाता है। जैसे, ऊपर के उदाहरण v
में, पहली पंक्ति में अंतिम स्थिति 3 में होगी और ^
मध्य पंक्ति 4 पर होगी (1-इंडेक्सिंग का उपयोग करके)।
इनपुट:
- एक स्ट्रिंग (या तार की सूची) स्विचबोर्ड का प्रतिनिधित्व करती है। यह regex से मेल खाने की गारंटी है
((-[v^])+-)(\n(-[v^])+-)*
। - अनुक्रमणिकाओं का प्रतिनिधित्व करने वाली संख्याओं की संभवतः एक खाली सूची, 0 या 1 (या कुछ मनमानी संख्या हो सकती है) यदि आप अनुक्रमित हैं। ये ऐसे स्विच हैं जिन्हें फ़्लिप करने की आवश्यकता होती है।
आउटपुट:
- निर्दिष्ट स्विच के साथ इनपुट के समान आकार में एक स्विचबोर्ड। किसी भी अनिर्दिष्ट स्विच को अपनी प्रारंभिक स्थिति को बनाए रखना चाहिए।
नियम:
- इनपुट हमेशा सही ढंग से फॉर्मेट किया जाएगा और कोई भी इंडेक्स सीमा से बाहर नहीं होगा।
- इंडेक्स की सूची को क्रमबद्ध किया जाएगा और इसमें कोई डुप्लिकेट नहीं होगा।
- अपने उत्तर में बताएं कि आप किस इंडेक्सिंग का उपयोग करते हैं, यह 0, 1 या कुछ मनमाना हो।
- जब तक आउटपुट इनपुट जैसा दिखता है तब तक ट्रेलिंग व्हाट्सएप ठीक रहता है।
- यह कोड-गोल्फ है इसलिए सबसे छोटा कोड जीतता है।
उदाहरण:
#Using 1-indexing
input: #Empty Case
[],
-v-^-v-
output:
-v-^-v-
input: #Single switch
[1],
-v-
output:
-^-
input: #Skip a line
[3,5],
-^-v-v-
-v-
-^-^-
output:
-^-v-^-
-v-
-v-^-
input: #Flip one in each line + number wrap
[3,4,6],
-^-v-v-
-v-
-^-^-
output:
-^-v-^-
-^-
-^-v-
input: #Flip 'em all
[1,2,3,4,5,6],
-^-v-v-
-v-
-^-^-
output:
-v-^-^-
-^-
-v-v-
>"-"
: जैसा कि इनपुट स्ट्रिंग के साथ शुरू होने की गारंटी है -
, आप उस पैरामीटर / तर्क / चर नाम के खिलाफ जांच कर सकते हैं जो आप इसके बजाय उपयोग कर रहे हैं।