Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 0 이동


몇 가지 숫자를 저장할 배열이 있다고 가정합니다. 0이 아닌 값과 0 값이 있습니다. 따라서 다른 숫자의 상대적 순서를 변경하지 않고 모든 0을 오른쪽으로 보내야 합니다. 따라서 배열이 [0, 1, 5, 0, 3, 8, 0, 0, 9]와 같으면 최종 배열은 [1, 5, 3, 8, 9, 0, 0, 0, 0 ]

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 인덱스 =0이라고 가정
  • 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]