Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ย้ายศูนย์ใน Python


สมมติว่าเรามีอาร์เรย์ที่จะเก็บตัวเลขไว้ มีค่าที่ไม่ใช่ศูนย์เช่นเดียวกับค่าศูนย์ ดังนั้นเราต้องส่งศูนย์ทั้งหมดไปทางขวาโดยไม่เปลี่ยนลำดับสัมพัทธ์ของตัวเลขอื่น ดังนั้นหากอาร์เรย์เป็นแบบ [0, 1, 5, 0, 3, 8, 0, 0, 9] ดังนั้นอาร์เรย์สุดท้ายจะเป็น [1, 5, 3, 8, 9, 0, 0, 0, 0 ]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • สมมติว่าดัชนี =0
  • for i =0 ถึงความยาวของ A
    • ถ้า A[i] !=0 แล้ว
      • A[ดัชนี] :=A[i]
      • ดัชนี :=ดัชนี + 1
  • for i =ดัชนีความยาว A
    • A[i] =0

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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)

อินพุต

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

ผลลัพธ์

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