首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定连接部件的数量

确定连接部件的数量
EN

Code Golf用户
提问于 2012-10-09 21:27:49
回答 2查看 568关注 0票数 6

您将得到一个通过邻接列表表示的图。例如,输入

代码语言:javascript
复制
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

你选择的语言-最短的代码可能。

EN

回答 2

Code Golf用户

发布于 2012-10-09 23:50:02

Mathematica 126

x保存输入字符串时,

代码语言:javascript
复制
t = ToExpression; 
Length@ConnectedComponents@Graph[Characters /@ ImportString[x, "Table"][[1]] /. 
{a_, "-", b_} :>   UndirectedEdge[t@a, t@b]]

如果将x作为无向边列表输入,则可以将其简化为34个字符:

代码语言:javascript
复制
Length@ConnectedComponents@Graph@i

示例:

票数 1
EN

Code Golf用户

发布于 2012-10-10 18:41:08

Sage,77

代码语言:javascript
复制
len(Graph([t.split('-')for t in raw_input().split()]).connected_components())
票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/8647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档