该程序的输入是两组。每组都在一个单独的行中;集合的元素是空格分隔的。
您的程序必须输出这些集的对称差异。
示例
集合{1,2,3}和{0,1,2}的对称差异等于{0,3}。
示例输入:
1 2 3
0 1 2
示例输出:
0 3
我的解决方案:
set_1 = set(input())
set_2 = set(input())
difference_set1 = set_1 - set_2
difference_set2 = set_2 - set_1
for x in difference_set1:
difference_set2.add(x)
for x in difference_set2:
print(x, end=' ')
测试结果失败......有人可以解释一下:
答案 0 :(得分:1)
您的代码工作正常。以下是相同的驱动程序测试。
IN : 1 2 3
IN : 0 1 2
OUT : 0 3
但是,有一个小logical mistake
。您没有正确处理您的输入。但最后,幸运的是,它取消了它可能创建的问题。
他们应该是:
set_1 = set(map(int,input().split()))
set_2 = set(map(int,input().split()))
#OR just
set_1 = set(input().split())
set_2 = set(input().split())
快速浏览代码的工作方式和正确的代码。
>>> s = set(input()) #your code
1 2 3
>>> s
=> {'1', '2', ' ', '3'}
>>> s = set(map(int, input().split())) #should be
1 2 3
>>> s
=> {1, 2, 3}
答案 1 :(得分:1)
让我们打印您的输入:
input_set = set(input())
print(input_set)
1 2 3
,它会打印{' ', '3', '1', '2'}
1,2,3
,它会打印{',', '3', '1', '2'}
123
,它会打印{'3', '1', '2'}
如您所见,您的输入存在问题。
您可以使用不带空格的输入,例如123
和012
。
或者,如果您想使用2个数字之间的空格,可以使用split()
:
input_set = set(input().split())
print(input_set)
输入:
1 2 3
输出:
{'3', '2', '1'}