介绍
在称为拓扑的数学领域中,有一些东西称为分离公理。直观地,您有的集合X和子集的集合X,我们可以将其视为属性。如果一个人可以X根据其属性来区分所有项目,则该系统可以很好地分开。分离公理正式化了这个想法。在此挑战中,您的任务是检查给定的三个分离公理X和属性列表。
输入项
您的输入是一个integer n ≥ 2,以及一个整数列表的列表T。中的整数T来自X = [0, 1, ..., n-1]。中的列表T可能为空且未排序,但不会包含重复项。
输出量
您的输出是由三个分离公理确定的四个字符串之一,每个公理都强于最后一个。还有其他公理,但是为了简单起见,我们坚持使用这些公理。
- 假设对于in 中的所有unique
x和,存在一个列表,其中恰好包含其中一个。然后和满足公理T0。yXTXT - 假设对于所有in
x和yinX,都有两个列表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()吗?