Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでゼロを複製する


整数の固定長配列があるとすると、ゼロが出現するたびに複製し、残りの要素を右側にシフトする必要があります。

元の配列の長さを超える要素は書き込まれないことに注意してください。

したがって、配列が[1,0,2,3,0,4,5,0]のようであるとすると、変更後は[1,0,0,2,3,0,0,4]>

これを解決するには、次の手順に従います-

  • arrを別の配列arr2にコピーし、iとjを0に設定します
  • whilei
  • arr2 [i]がゼロの場合、
    • arr [i]:=0
    • iを1増やします
    • 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]

  1. Pythonで複製が含まれています

    番号のリストがあるとします。リストに重複する要素が含まれているかどうかを確認する必要があります。したがって、リストが[1,5,6,2,1,3]の場合、2つの1があるため、1が返されますが、リストが[1,2,3,4]の場合、次のようになります。重複が存在しないため、false。 これを解決するために、このアプローチに従います- セットのデータ構造は一意のデータのみを保持することがわかっています。ただし、リストは重複するコンテンツを折りたたむことができます。したがって、リストをセットに変換すると、重複する要素がある場合はサイズが小さくなり、長さを一致させることでこの問題を解決できます。 例 理

  2. Python文字列に先行ゼロを追加する

    Pythonのさまざまなデータ要素に文字列としてゼロを追加する必要がある場合があります。フォーマットと適切な表現の理由がある場合もあれば、これらの値が入力として機能する計算の理由がある場合もあります。以下は、この目的で使用する方法です。 format()の使用 ここでは、DataFrameを取得し、ゼロを文字列として追加する必要がある列にformat関数を適用します。ラムダメソッドは、関数を繰り返し適用するために使用されます。 例 import pandas as pd string = {'Column' : ['HOPE','FOR',&