介绍
在此挑战中,将为您提供带有自环的有向图,而您的任务是将其转换为无自环的无向图。
输入值
您的输入是一个有向图,其顶点设置{0, 1, ..., n-1}
为某个自然数n ≥ 0
(或者{1, 2, ..., n}
如果您使用基于1的索引)。该图以length- n
list的形式给出,L
其中L[i]
是顶点的邻居的列表i
。例如,列表[[0,1],[0],[1,0,3],[]]
代表图形
.-.
| v
'-0<--2-->3
^ |
| |
v |
1<--'
请注意,邻居列表不一定是有序的,但是可以保证它们没有重复。
输出量
您的输出是另一张与输入格式相同的图,可从图获得,如下所示。
- 删除所有自循环。
- 对于每个剩余边
u -> v
,v -> u
如果还没有反转边,则添加它。
与输入一样,输出图的邻居列表可能是无序的,但它们不能包含重复项。对于上面的图,正确的输出将是[[1,2],[0,2],[0,1,3],[2]]
,代表图
0<->2<->3
^ ^
| |
v |
1<--'
规则
您可以在图形中使用基于0或基于1的索引。功能和完整程序都可以接受。最低字节数获胜,并且不允许出现标准漏洞。
测试用例
这些测试用例使用基于0的索引。在基于1的情况下递增每个数字。这些邻居列表按升序排序,但不是必需的。
[] -> []
[[0]] -> [[]]
[[],[0,1]] -> [[1],[0]]
[[0,1],[]] -> [[1],[0]]
[[0,1],[0],[1,0,3],[]] -> [[1,2],[0,2],[0,1,3],[2]]
[[3],[],[5],[3],[1,3],[4]] -> [[3],[4],[5],[0,4],[1,3,5],[2,4]]
[[0,1],[6],[],[3],[3],[1],[4,2]] -> [[1],[0,5,6],[6],[4],[3,6],[1],[1,2,4]]
[[6],[0,5,1],[5,4],[3,5],[4],[5,6],[0,3]] -> [[1,6],[0,5],[4,5],[5,6],[2],[1,2,3,6],[0,3,5]]
[[1,0],[5,1],[5],[1],[5,7],[7,1],[],[1]] -> [[1],[0,3,5,7],[5],[1],[5,7],[1,2,4,7],[],[1,4,5]]
[[2,8,0,9],[5,2,3,4],[0,2],[3,7,4],[8,1,2],[5,1,9,2],[6,9],[6,5,2,9,0],[9,1,2,0],[3,9]] -> [[2,7,8,9],[2,3,4,5,8],[0,1,4,5,7,8],[1,4,7,9],[1,2,3,8],[1,2,7,9],[7,9],[0,2,3,5,6,9],[0,1,2,4,9],[0,3,5,6,7,8]]
.e
只是从切换k,Y
到k,b
,所以要运行此命令,请使用.e-.|f}k@QTUQbkQ