在Python中检测选民欺诈
假设我们有一个投票列表,列表中的每个元素都有两个元素[c_id,v_id],c_id是候选ID,v_id是投票者ID。我们必须检查是否有任何选民投票了一次以上。
因此,如果输入类似于[[5,1],[5,0],[5,4],[5,3],[5,0]],则输出将为True[5,0]出现两次
为了解决这个问题,我们将遵循以下步骤-
制作一个名为all的新集
为每一票进行投票
全部插入(vote[1])
当所有人的大小与选票的大小不同时返回true
让我们看下面的实现以更好地理解-
示例
class Solution: def solve(self, votes): all = set() for vote in votes: all.add(vote[1]) return len(all) != len(votes) ob = Solution()votes = [[5, 1],[5, 0],[5, 4],[5, 3],[5, 0]] print(ob.solve(votes))
输入值
[[5, 1],[5, 0],[5, 4],[5, 3],[5, 0]]
输出结果
True