Computer >> Máy Tính >  >> Lập trình >> Python

Move Zeroes trong Python


Giả sử chúng ta có một mảng chứa một số số. Có giá trị khác không cũng như giá trị bằng không. Vì vậy, chúng ta phải gửi tất cả các số không sang bên phải mà không thay đổi thứ tự tương đối của các số khác. Vì vậy, nếu mảng giống như [0, 1, 5, 0, 3, 8, 0, 0, 9], thì mảng cuối cùng sẽ là [1, 5, 3, 8, 9, 0, 0, 0, 0 ]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Giả sử index =0
  • cho i =0 đến độ dài của A
    • nếu A [i]! =0, thì
      • A [index]:=A [i]
      • index:=index + 1
  • for i =index với độ dài của A
    • A [i] =0

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn -

class Solution(object):
   def moveZeroes(self, nums):
      """
      :type nums: List[int]
      :rtype: None Do not return anything, modify nums in-place instead.
      """
      insert_index = 0
      for i in range(len(nums)):
         if nums[i] != 0:
            nums[insert_index]=nums[i]
            insert_index+=1
      for i in range(insert_index,len(nums)):
         nums[i]=0
nums = [0,1,5,0,3,8,0,0,9]
ob1 = Solution()
ob1.moveZeroes(nums)
print(nums)

Đầu vào

nums = [0,1,5,0,3,8,0,0,9]

Đầu ra

[1,5,3,8,9,0,0,0,0]