去年(2009年),Google Code Jam引发了一个有趣的问题,即第1B轮第一个问题:决策树
由于问题似乎是针对类似Lisp的语言量身定制的,我们在SO上自发地拥有了一个激动人心的代码高手,其中一些语言使用了许多不同的技术设法用比任何Lisp变种更少的字符来解决问题.
今年的第1B轮问题A(File Fix-it)似乎也适用于特定的语言系列,Unix shell脚本.所以继续"1B-A传统"是合适的.:p但哪种语言最终会得到最短的代码?让我们看看codegolf吧!
问题描述(改编自官方页面):
您将获得T测试用例.每个测试用例包含N行,列出计算机上当前存在的所有目录的完整路径.例如:
/home
/home/awesome
/home/awesome/wheeeeeee
/home/awesome/wheeeeeee/codegolfrocks
/home/thecakeisalie
Run Code Online (Sandbox Code Playgroud)
接下来,您将获得M行,其中列出了您要创建的目录的完整路径.它们的格式与前面的示例相同.您可以使用该mkdir命令创建目录,但只有父目录已存在才能创建目录.例如,要创建目录/pyonpyon/fumufumu/yeahyeah和/pyonpyon/fumufumu/yeahyeahyeah,你将需要使用mkdir四次:
mkdir /pyonpyon
mkdir /pyonpyon/fumufumu
mkdir /pyonpyon/fumufumu/yeahyeah
mkdir /pyonpyon/fumufumu/yeahyeahyeah
Run Code Online (Sandbox Code Playgroud)
对于每个测试用例,返回您必须调用的次数,mkdir以创建您要创建的所有目录.
输入
输入包含一个文本文件,其第一行包含整数T,即测试用例的数量.该文件的其余部分包含测试用例.
每个测试用例都以包含整数N和M的行开头,用空格分隔.
接下来的N行包含计算机上当前存在的每个目录的路径(不包括根目录/).这是一个或多个非空的小写字母数字字符串的串联,每个字符串前面都有一个字符串/.
以下M行包含您要创建的每个目录的路径.
产量
对于每种情况,打印一行包含Case #X: Y,X案例编号在哪里,Y是解决方案.
范围 …