কম্পিউটার

পাইথনে ইন-প্লেস জিরোসকে তালিকার শেষে সরান


ধরুন আমাদের কাছে সংখ্যার সংখ্যার একটি তালিকা আছে, আমাদেরকে তালিকার মধ্যে তালিকা আপডেট করে তালিকার শেষে সমস্ত শূন্য রাখতে হবে। এবং অন্যান্য উপাদানের আপেক্ষিক ক্রম পরিবর্তন করা উচিত নয়। আমাদের O(1) অতিরিক্ত স্থানে এটি সমাধান করার চেষ্টা করতে হবে।

সুতরাং, ইনপুট যদি [2,0,1,4,0,5,6,4,0,1,7] এর মত হয়, তাহলে আউটপুট হবে [2, 1, 4, 5, 6, 4, 1] , 7, 0, 0, 0]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • যদি L-এর আকার 0 এর সমান হয়, তাহলে
    • একটি ফাঁকা তালিকা ফেরত দিন
  • k :=0
  • এর জন্য 0 থেকে L এর আকারের মধ্যে, করুন
    • যদি L[i] 0 এর মত না হয়, তাহলে
      • L[k] :=L[i]
      • k :=k + 1
  • j-এর জন্য k থেকে L আকারের মধ্যে, করুন
    • L[j] :=0
  • প্রত্যাবর্তন এল

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, L):
      if len(L) == 0:
         return []
         k = 0
         for i in range(len(L)):
            if L[i] != 0:
               L[k] = L[i]
               k+=1
         for j in range(k,len(L)):
            L[j] = 0
         return L
ob = Solution()
L = [2,0,1,4,0,5,6,4,0,1,7]
print(ob.solve(L))

ইনপুট

[2,0,1,4,0,5,6,4,0,1,7]

আউটপুট

[2, 1, 4, 5, 6, 4, 1, 7, 0, 0, 0]

  1. Python-এ List Comprehension ব্যবহার করে অ্যারের শেষ পর্যন্ত সমস্ত শূন্য সরান

  2. পাইথনে তালিকার শেষ থেকে Nth নোড সরান

  3. পাইথনে জিরোস ডুপ্লিকেট

  4. পাইথনে জিরো সরান