首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >寻找欧拉电路

寻找欧拉电路
EN

Code Golf用户
提问于 2017-01-11 00:53:22
回答 1查看 318关注 0票数 -3

挑战

您已经被分配了一个任务来编写一个程序,该程序以一个多图作为输入,如果它包含一个Eularian电路,则返回一个。否则,程序的行为是不明确的,根据你老板交给你的规格说明。

然而,您最近发现了您的新同事Steven几次不小心地处理C中未定义的行为,并敦促他更加小心,因为未定义的行为也可能意味着系统上的所有文件都会被删除。现在,他敢让您编写程序,使其在发生上述(以前)未定义行为的情况时自行删除。你不想失去你的荣誉和接受。

描述

欧拉电路是无向多路图中的一个电路,它只访问每条边一次。

您可以自己选择程序输入和输出的格式。它们不需要是相同的格式。例如,您可以对边缘进行如下描述

代码语言:javascript
复制
({1,2},{1,4},{2,4},{2,3},{2,3})

作为您对此图的输入

,但是返回一个顶点序列作为输出:

代码语言:javascript
复制
(1,2,3,2,4,1)

详细信息

您不需要能够接受包含无边顶点的多图。

只在RAM中保存您的程序,然后终止它不算作删除它。需要在文件里。只有当输入多图中不存在欧拉电路时,才必须删除该文件。

顶点必须是可识别的(需要在程序输出的输入中告诉欧拉电路),但是边不能。但是,你可以限制识别的手段(例如,只有正整数或者只有由一个#和一个正整数组成的字符串),只要大图是可表示的(只有一个英文字母表是不够的)。标识符不必是显式的。例如,您可以让输入的顺序确定输出中用哪个顶点标识的数字。

输出的方式(保存到文件中,打印在stdout上,函数的返回值)并不重要。

您不能依赖磁盘上程序的名称而不更改。如果只编写函数,则仍然必须删除磁盘上的文件。

胜利条件

这是代码高尔夫,最短代码获胜。

对此链接的扰流警告:可以在互联网上找到解决此问题的简单算法

EN

回答 1

Code Golf用户

发布于 2017-01-11 01:25:08

Mathematica,48字节

代码语言:javascript
复制
FindEulerianCycle@#/.{}->DeleteFile@FileNames[]&

是的,这里面有个内饰。如果没有欧拉循环,它将返回{},因此我们手动将其重定向到一个命令,删除当前工作目录中的所有文件。

票数 4
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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