एक फ़ंक्शन (जैसे placeAt) लिखें जो गैर-नकारात्मक पूर्णांक का एक सरणी लेता है और एक सूचकांक जो एक गैर-नकारात्मक पूर्णांक है। इसे दिए गए इंडेक्स में 1 रखना चाहिए, संभवतः उस स्पॉट को खाली करने के लिए अन्य प्रविष्टियों को एक स्थान पर शिफ्ट करना, 0 के साथ खाली स्थानों के लिए खड़ा है।
- यदि वांछित सूचकांक में प्रवेश 0 है, तो इसे 1 से भरें।
- अन्यथा, सूचकांक के बाईं ओर निकटतम 0 की तलाश करें। कमरे बनाने के लिए उस 0 में छोड़ दी गई एक प्रविष्टि को शिफ्ट करें, फिर इंडेक्स को 1 से भरें।
- यदि बाईं ओर 0 नहीं है, तो दाईं ओर समान करें।
- यदि न तो संभव है (यानी यदि कोई 0 नहीं है), तो अपरिवर्तित सरणी लौटाएं।
आइटम 0-अनुक्रमित हैं। फ़ंक्शन का नाम कुछ भी आप चाहते हैं हो सकता है।
उदाहरण:
(पत्र किसी भी सकारात्मक पूर्णांक मान के लिए खड़े होते हैं।)
[a, b, 0, c, d, 0] placeAt 2 // output [a, b, 1, c, d, 0] place 2 is 0, just fill
[a, b, 0, c, d, 0] placeAt 3 // output [a, b, c, 1, d, 0] place 3 is filled, shift items left
[a, b, 0, c, d, 0] placeAt 0 // output [1, a, b, c, d, 0] place 0 is filled, can't shift left, shift items right
[a, b, 0, c, d, 0] placeAt 1 // output [a, 1, b, c, d, 0] place 1 is filled, can't shift left, shift items right
[0, a, b, 0, c, d, 0] placeAt 2 // output [a, b, 1, 0, c, d, 0] place 2 is filled, shift items left
[0, a, b, 0, c, d, 0] placeAt 4 // output [0, a, b, c, 1, d, 0] place 4 is filled, shift items left (notice you keep shifting up until a 0)
[0, 2, 0, 2] placeAt 3 // output [0, 2, 2, 1] place 3 is filled, shift items left
यह एक कोड गोल्फ चुनौती है। 9 दिनों के अंत में सबसे छोटी प्रविष्टि जीतती है।
[0, 2, 0, 2] placeAt 3, यह उत्पादन करने के लिए कानूनी है [2, 0, 2, 1]? क्या वास्तव में एक फ़ंक्शन नामक कोड आवश्यक है placeAt? ध्यान दें कि कुछ भाषाओं में कार्य नहीं होते हैं। "कुछ अपवादों को छोड़ दें" कुछ भाषाओं पर भी लागू नहीं हो सकता है; मैं सुझाव दूंगा कि एक आउटपुट एक त्रुटि का संकेत देता है।
[2, 0, 2, 1]एक कानूनी आउटपुट नहीं है, क्योंकि आपको हमेशा यथासंभव कुछ तत्वों को स्थानांतरित करना चाहिए, और आप जो चाहें फ़ंक्शन को नाम दे सकते हैं।

0?