介绍
在称为拓扑的数学领域中,有一些东西称为分离公理。直观地,您有的集合X
和子集的集合X
,我们可以将其视为属性。如果一个人可以X
根据其属性来区分所有项目,则该系统可以很好地分开。分离公理正式化了这个想法。在此挑战中,您的任务是检查给定的三个分离公理X
和属性列表。
输入项
您的输入是一个integer n ≥ 2
,以及一个整数列表的列表T
。中的整数T
来自X = [0, 1, ..., n-1]
。中的列表T
可能为空且未排序,但不会包含重复项。
输出量
您的输出是由三个分离公理确定的四个字符串之一,每个公理都强于最后一个。还有其他公理,但是为了简单起见,我们坚持使用这些公理。
- 假设对于in 中的所有unique
x
和,存在一个列表,其中恰好包含其中一个。然后和满足公理T0。y
X
T
X
T
- 假设对于所有in
x
和y
inX
,都有两个列表T
,其中一个包含x
但不包含y
,另一个包含y
但不包含x
。然后X
和T
满足公理T1。 - 假设上面的两个列表也不包含公共元素。然后
X
和T
满足公理T2。
你的输出中的一个T2
,T1
,T0
或TS
,这取决于上述条件成立(TS
手段它们都不做)。请注意,T2比T1强,T1比T0强,并且您应始终输出尽可能强的公理。
规则和计分
您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。
测试用例
2 [] -> TS
2 [[],[1]] -> T0
2 [[0],[1]] -> T2
3 [[0],[0,1,2],[1,2]] -> TS
3 [[],[0],[0,1],[2]] -> T0
3 [[0],[0,1],[2,1],[0,1,2]] -> T0
3 [[0],[0,1],[2,1],[2,0]] -> T1
6 [[0,2,4],[0,3,5],[1,2],[3,4,5]] -> TS
6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,4,5]] -> T0
6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,1],[3,4,5]] -> T1
6 [[0,1],[0,2,3],[1,4],[2,4],[2,3,5],[1,3],[4,5]] -> T2
@TimmyD,不。请参阅第一个测试用例。
—
彼得·泰勒
0 []
应该给T2
。
@PeterTaylor Aaaahhhhhhhh。谢谢,这很有帮助。
—
AdmBorkBork,2016年
关于可分离性的重要解释!
—
路易斯·门多
n
多余吗?在其余的挑战中,我没有看到它仅用于定义可以包含的元素T
,所以它只是提供的快捷方式T.Maximum()
吗?