重複する要素を見つけて、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
- nums [i]がdにない場合、
- 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]
-
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: &
-
リストの最初と最後の要素を交換するPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されたので、最後の要素を最初の要素と交換する必要があります。 以下で説明するように、問題を解決するための4つのアプローチがあります- アプローチ1-ブルートフォースアプローチ 例 def swapLast(List): size = len(List) # Swap operation temp = List[0] List[0] = List[size - 1]