去年(2009 年),Google Code Jam将一个有趣的问题作为第 1B 轮的第一个问题:决策树
由于这个问题似乎是为类似 Lisp 的语言量身定做的,因此我们自发地在 SO 上进行了一次令人兴奋的 codegolf,其中一些语言设法用比任何 Lisp 种类更少的字符解决了这个问题,使用了相当多的不同技术。
今年的 Round 1B Problem A ( File Fix-it ) 似乎也是为特定的语言家族量身定制的,即 Unix shell 脚本。因此,继续“1B-A 传统”是合适的。:p 但是哪种语言的代码最短呢?让我们codegolf看看吧!
问题描述(改编自官网):
给你T个测试用例。每个测试用例包含N行,列出您计算机上当前存在的所有目录的完整路径。例如:
/home
/home/awesome
/home/awesome/wheeeeeee
/home/awesome/wheeeeeee/codegolfrocks
/home/thecakeisalie
接下来,给您M行列出您想要创建的目录的完整路径。它们的格式与前面的示例相同。您可以使用该命令创建目录mkdir
,但只有在父目录已经存在时才能这样做。例如,要创建目录/pyonpyon/fumufumu/yeahyeah
和/pyonpyon/fumufumu/yeahyeahyeah
,您需要使用mkdir
四次:
mkdir /pyonpyon
mkdir /pyonpyon/fumufumu
mkdir /pyonpyon/fumufumu/yeahyeah
mkdir /pyonpyon/fumufumu/yeahyeahyeah
对于每个测试用例,返回您必须调用的次数mkdir
以创建您想要创建的所有目录。
输入
输入由一个文本文件组成,其第一行包含整数T,即测试用例的数量。文件的其余部分包含测试用例。
每个测试用例都以包含整数N和M的行开头,用空格分隔。
接下来的N行包含您计算机上当前存在的每个目录的路径(不包括根目录/
)。这是一个或多个非空小写字母数字字符串的串联,每个字符串前面都有一个/
.
以下M行包含您要创建的每个目录的路径。
输出
对于每个案例,打印一行Case #X: Y
,其中X
是案例编号,Y
是解决方案。
限制
1≤T≤100。
0 ≤ N ≤ 100。
1≤M≤100。
每个路径最多包含 100 个字符。
每个路径在您计算机上已有的目录列表或所需目录列表中只出现一次。但是,路径可能出现在两个列表中,如下面的示例 #3 所示。
如果某个目录已在您计算机上的目录列表中,则它的父目录也将被列出,但根目录除外/
。
输入文件的长度最多为 100,000 字节。
例子
更大的样本测试用例可以在这里下载。
输入:
3
0 2
/home/sparkle/pyon
/home/sparkle/cakes
1 3
/z
/z/y
/z/x
/y/y
2 1
/moo
/moo/wheeeee
/moo
输出:
Case #1: 4
Case #2: 4
Case #3: 0
代码高尔夫
请以解决此问题的任何语言发布您的最短代码。输入和输出可以通过标准输入和标准输出或您选择的其他文件进行处理。如果您的代码在执行时有可能修改或删除现有文件,请包含免责声明。
获胜者将是在 2010 年第 1B 轮开始之前存在实施的语言中最短的解决方案(按字节数计算)。因此,尽管您可以自由使用您刚刚编写的语言来提交 0 字节解决方案,它不会计算在内,你可能会被否决。^_^
积分榜