程序查找重复元素并删除它们在Python中的最后一次出现

假设我们有一个数字A的列表,我们必须找到所有重复的数字并删除它们的最后出现次数。

因此,如果输入类似于[10,30,40,10,30,50],则输出将为[10,30,40,50]

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

  • 看过:=新映射

  • d:=新映射

  • 对于范围从0到nums的i,执行

    • d [nums [i]]:= d [nums [i]] + 1

    • d [nums [i]]:= 1

    • 如果nums [i]不在d中,则

    • 除此以外,

    • i:= 0

    • 当我<nums的大小,

      • 从nums中删除第i个元素

      • 我:=我-1

      • seen [nums [i]]:= seen [nums [i]] + 1

      • seen [nums [i]]:= 1

      • n:= d [nums [i]]

      • 如果没有看到nums [i],则

      • 除此以外,

      • 如果n与see [nums [i]]相同且n> 1,则

      • 我:=我+ 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]
      猜你喜欢