竞赛(!):使用您选择的语言,编写一个程序,该程序将遍历给定目录的目录树并输出与之对应的树(即数组数组)。假定目录是一个预定义的变量D。以最少的字符数为准。
规则:
- 您必须使用递归
- 见规则
注意:假定没有递归深度限制。换句话说,您的代码只需要为足够小的目录树工作,原则上就可以为更大的目录树工作。
例如:
目录树是
dir1
├── dir11
│ ├── file111
│ └── file112
├── dir12
│ ├── file121
│ ├── file122
│ └── file123
├── file11
├── file12
└── file13
输出树是
[[[],[]],[[],[],[]],[],[],[]]
这里的第一个代码高尔夫,让我知道我做错了什么。
玩得开心 :)
7
“规则:1.您必须使用递归2.请参阅规则”啊!帮助我陷入无限循环!
—
贾斯汀
您可以按字符数进行计算,也可以按字节最小进行计算(这样,使用unicode字符的程序将比使用纯ascii的程序更大)
—
贾斯汀
它会走多深?
—
不是。
如果您改为输入文件(作为路径或其他内容),而他们可以简单地输出文件,那么许多人将不胜感激。另外,您的输出似乎有点难以理解。您可以提供一个测试用例吗?除了使用数组数组,我们可以简单地将每个目录/文件打印在自己的行上,但缩进显示子文件夹吗?基本上,我们必须以某种格式输出(在这种情况下,举个例子),还是可以选择一种格式(只要它是明确的)?
—
贾斯汀
我要瞎了,解析您的输出格式。这来自喜欢Lisp的人。
—
达伦·斯通