刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

编程实现:

给定一个长度为N的列表(N为偶数),请你找出列表中出现次数大于N/2次的元素。

如:N=4,列表为[3,2,3,3],其中列表中出现次数大于2(4/2)的元素为3,故输出3。

输入描述:

输入N个整数,整数之间一个英文逗号隔开,N个整数表示列表中的元素

输出描述:

输出列表中出现次数大于N/2次的元素,如果不存在则输出-1


样例输入:

3,2,3,3

样例输出:

3

使用微信搜索喵呜刷题,轻松应对考试!

答案:

br />```pythondef find_majority(nums):count_dict = for num in nums:count_dict[num] = count_dict.get(num, 0) + 1N = len(nums)majority_num = -1for num, count in count_dict.items():if count > N // 2:majority_num = numbreakreturn majority_numnums_str = input()nums = nums_str.split(',')nums = [int(num) for num in nums]print(find_majority(nums))```

解析:

【喵呜刷题小喵解析】

首先,我们定义了一个函数`find_majority`,用于找出列表中出现次数大于N/2次的元素。

在函数中,我们创建了一个字典`count_dict`,用于存储每个元素出现的次数。然后,我们遍历输入的列表`nums`,对于每个元素,我们在`count_dict`中查找该元素,如果找到了,就将其对应的次数加1,否则,就将该元素作为字典的键,并将次数初始化为1。

接着,我们计算列表的长度N,并初始化`majority_num`为-1。然后,我们遍历`count_dict`中的每个元素和对应的次数,如果某个元素的次数大于N/2,就将该元素赋值给`majority_num`,并跳出循环。

最后,我们调用`find_majority`函数,传入输入的列表`nums`,并打印出结果。

在主程序中,我们先从标准输入读取一个字符串`nums_str`,其中包含了输入的N个整数,整数之间用英文逗号隔开。然后,我们调用`split`方法,将`nums_str`分割成一个列表,其中包含了输入的N个整数。接着,我们调用列表推导式,将列表中的字符串元素转换为整数元素。最后,我们调用`find_majority`函数,传入转换后的列表`nums`,并打印出结果。
创作类型:
原创

本文链接:编程实现: 给定一个长度为N的列表(N为偶数),请你找出列表中出现次数大于N/2次的元素。 如:N=

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share