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

重複する要素を見つけて、Pythonでそれらの最後の出現を削除するプログラム


番号Aのリストがあるとすると、重複する番号をすべて見つけて、最後に出現した番号を削除する必要があります。

したがって、入力が[10、30、40、10、30、50]の場合、出力は[10、30、40、50]

になります。

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

  • sawed:=新しい地図
  • d:=新しい地図
  • 0からnumsのサイズの範囲のiの場合は、
    • nums [i]がdにない場合、
      • d [nums [i]]:=1
    • それ以外の場合、
      • d [nums [i]]:=d [nums [i]] + 1
  • i:=0
  • i
  • n:=d [nums [i]]
  • nums [i]が表示されない場合は、
    • sawed [nums [i]]:=1
  • それ以外の場合、
    • sawed [nums [i]]:=sawed [nums [i]] + 1
  • nがseen[nums[i]]と同じでn>1の場合、
    • numsからi番目の要素を削除する
    • i:=i-1
  • i:=i + 1
  • 数値を返す
  • 理解を深めるために、次の実装を見てみましょう-

    class Solution:
       def solve(self, nums):
          seen={}
          d={}
          for i in range(len(nums)):
             if not nums[i] in d:
                d[nums[i]]=1
             else:
                d[nums[i]]+=1
          i=0
          while i < len(nums):
             n=d[nums[i]]
             if not nums[i] in seen:
                seen[nums[i]]=1
             else:
                seen[nums[i]]+=1
             if n == seen[nums[i]] and n > 1:
                nums.pop(i)
             i-=1
             i+=1
          return nums
    ob = Solution()
    print(ob.solve([10, 30, 40, 10, 30, 50]))

    入力

    [10, 30, 40, 10, 30, 50]

    出力

    [10, 30, 40, 50]

    1. Pythonで1からnの範囲のn+1個の数値から重複する要素を見つけるプログラム

      長さn+1のnumsと呼ばれる数値のリストがあるとします。これらの数値は、範囲1、2、...、nから選択されます。ご存知のように、鳩の巣原理を使用すると、重複が存在する必要があります。それを見つけて返送する必要があります。 したがって、入力が[2、1、4、3、3]の場合、出力は3になります。 これを解決するには、次の手順に従います- l:=numsのサイズ temp:=l *(l-1)/ 2 temp_sum:=numsのすべての要素の合計 return(temp_sum --temp) 理解を深めるために、次の実装を見てみましょう- 例 class Solution: &

    2. リストの最初と最後の要素を交換するPythonプログラム

      この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されたので、最後の要素を最初の要素と交換する必要があります。 以下で説明するように、問題を解決するための4つのアプローチがあります- アプローチ1-ブルートフォースアプローチ 例 def swapLast(List):    size = len(List)    # Swap operation    temp = List[0]    List[0] = List[size - 1]