मान लीजिए कि हमारे पास पूर्णांकों की एक निश्चित लंबाई वाली सरणी है, हमें शून्य की प्रत्येक घटना की नकल करनी होगी, शेष तत्वों को दाईं ओर स्थानांतरित करना होगा।
ध्यान दें कि मूल सरणी की लंबाई से अधिक के तत्व नहीं लिखे गए हैं।
तो मान लीजिए कि सरणी [1,0,2,3,0,4,5,0] की तरह है, तो संशोधन के बाद यह [1,0,0,2,3,0,0,4]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- गिरफ्तारी को किसी अन्य सरणी arr2 में कॉपी करें, i और j को 0 के रूप में सेट करें
- जबकि मैं <गिरफ्तारी का आकार −
- अगर arr2[i] शून्य है, तो
- गिरफ्तारी[i] :=0
- मैं 1 से बढ़ाएँ
- अगर मैं <गिरफ्तारी का आकार, तो गिरफ्तार [i] :=0
- अन्यथा गिरफ्तार[i] :=arr2[j]
- i और j को 1 से बढ़ाएं
- अगर arr2[i] शून्य है, तो
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
class Solution(object): def duplicateZeros(self, arr): arr2 = [i for i in arr] i=0 j = 0 while i < len(arr): if not arr2[j]: arr[i] = 0 i+=1 if i<len(arr): arr[i] = 0 else: arr[i] = arr2[j] j+=1 i+=1 return arr ob1 = Solution() print(ob1.duplicateZeros([1,0,2,3,0,4,5,0]))
इनपुट
[1,0,2,3,0,4,5,0]
आउटपुट
[1,0,0,2,3,0,0,4]