複製 Python 中的零


假設我們有一個定長的整數陣列,我們需要複製每個出現的零,同時將剩餘元素移至右側。

請注意,原始陣列長度之外的元素不會被寫入。

所以,如果該陣列為 [1,0,2,3,0,4,5,0],那麼修改之後它將為 [1,0,0,2,3,0,0,4]

為了解決這個問題,我們將按照以下步驟操作 −

  • 將陣列複製到另一個數組 arr2,設定 i 和 j 為 0
  • 當 i < arr 的大小時 −
    • 如果 arr2[i] 為零,那麼
      • arr[i] := 0
      • 將 i 加 1
      • 如果 i < arr 的大小時,那麼 arr[i] := 0
    • 否則,arr[i] := arr2[j]
    • 將 i 和 j 加 1

示例

讓我們看看以下實現,以便更好地理解 −

 Live Demo

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]

更新時間:29-Apr-2020

965 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.