您将得到一个通过邻接列表表示的图。例如,输入
1-2 2-3 3-4 4-1对应于节点1、2、3和4的图,其中1连接到2,2连接到3,3连接到4,4连接到1(形成正方形)。
任务是确定由输入的邻接列表表示的图的连通分量数。“连接组件”是一组节点,从这些节点没有路径可以到达不在集合中的任何其他节点。
示例:
输入:
1-2 2-3 4-5输出:2
你选择的语言-最短的代码可能。
发布于 2012-10-09 23:50:02
在x保存输入字符串时,
t = ToExpression;
Length@ConnectedComponents@Graph[Characters /@ ImportString[x, "Table"][[1]] /.
{a_, "-", b_} :> UndirectedEdge[t@a, t@b]]如果将x作为无向边列表输入,则可以将其简化为34个字符:
Length@ConnectedComponents@Graph@i示例:

发布于 2012-10-10 18:41:08
len(Graph([t.split('-')for t in raw_input().split()]).connected_components())https://codegolf.stackexchange.com/questions/8647
复制相似问题