Python中的重复零

假设我们有一个固定长度的整数数组,我们必须复制每次出现的零,将其余元素移到右侧。

请注意,不会写入超出原始数组长度的元素。

因此,假设数组类似于[1,0,2,3,0,4,5,0],则在修改后它将为[1,0,0,2,3,0,0,4]

为了解决这个问题,我们将遵循以下步骤-

  • 将arr复制到另一个数组arr2中,将i和j设置为0

  • 当我<arr的大小-

    • arr [i]:= 0

    • 使我增加1

    • 如果i <arr的大小,则arr [i]:= 0

    • 如果arr2 [i]为零,则

    • else arr [i]:= arr2 [j]

    • 将i和j加1

    示例

    让我们看下面的实现以更好地理解-

    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]