You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据集合匹配元素数量递增Python变量?

解决Python集合匹配计数并更新幸福值的问题

嘿,看你在捣鼓Python代码解决HackerRank的题目,想要根据集合匹配的元素数量来递增幸福值对吧?我帮你梳理下当前代码的问题,再给你可行的改进方案~

先说说你当前代码的小问题

  • 输入处理不够灵活:你示例里是一行输入多个数字,但当前代码是循环逐个读取输入,这会导致如果用户直接输一行的话程序报错,体验不太好。
  • 核心逻辑没完成:你已经算出了第一个子集合和主集合的匹配长度,但没把这个数值加到myhappiness变量里;同时也没处理第二个子集合的逻辑(猜你大概率是想对第二个集合的匹配元素做减分操作,毕竟HackerRank的那道题是这个设定)。
  • 变量命名有点混乱:比如mainarray是元素个数,mainarr是数组,名字太像容易搞混,可读性可以再提升。

修正后的代码(附注释)

# 初始化幸福值变量
my_happiness = 0

# 读取主数组的元素个数和内容
n_main = int(input("Enter number of elements: "))
main_arr = list(map(int, input().split()))
# 转成集合,方便后续快速查找元素
main_set = set(main_arr)

# 读取子集合的元素个数
n_sub = int(input("Enter no of elements in subarray: "))

# 处理第一个加分集合
print("Enter the first set (space-separated): ")
sub_set1 = set(map(int, input().split()))
# 计算匹配元素数量,加到幸福值里
match_count1 = len(sub_set1.intersection(main_set))
my_happiness += match_count1

# 处理第二个减分集合(如果需求是加分,把减号改成加号就行)
print("Enter the second set (space-separated): ")
sub_set2 = set(map(int, input().split()))
# 计算匹配元素数量,从幸福值里减去
match_count2 = len(sub_set2.intersection(main_set))
my_happiness -= match_count2

# 输出信息和结果
print(f"Main set is {main_set}")
print(f"First set is {sub_set1}")
print(f"Second set is {sub_set2}")
print(f"Matches in first set: {match_count1}")
print(f"Matches in second set: {match_count2}")
print(f"Final happiness score: {my_happiness}")

代码改进说明

  1. 输入优化:用input().split()读取一行多个数字,再转成整数列表,完美适配你示例里的输入方式,比循环逐个输入高效得多。
  2. 核心逻辑实现:直接把匹配元素的长度加到(或减去)幸福值,完全满足你“匹配n个元素就加n”的需求;如果第二个集合也是加分项,只需要把my_happiness -= match_count2改成my_happiness += match_count2即可。
  3. 可读性提升:变量名更清晰,比如my_happiness、n_main,一眼就能看懂含义。

测试你的示例输入

输入:

Enter number of elements: 5
45 78 95 25 12
Enter no of elements in subarray: 2
Enter the first set (space-separated): 
45 78
Enter the second set (space-separated): 
23 24

输出:

Main set is {12, 45, 78, 25, 95}
First set is {45, 78}
Second set is {24, 23}
Matches in first set: 2
Matches in second set: 0
Final happiness score: 2

正好符合你想要的“匹配2个元素就加2”的效果~

内容的提问来源于stack exchange,提问作者user14109979

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 22:42:32