我有一个具有文件结构的数组,我需要找到最高关系。我有一个返回树结构的脚本,我需要删除重复项。
此“路径”将被“/”分隔。
var array = [
'2/7',
'2/6',
'2/8/4/6',
'1/3',
'1/4',
'1',
'1/5/1/4',
'2',
'3/test'
]
这应该输出:
var return = [
'1',
'2',
'3/test'
]
我将如何执行此操作?
我正在扫描目录以查找已删除的目录。假设我要删除“2”,但我的监控脚本注意到整个分支都消失了:2、2/7、2/6、2/8/4/6 并报告它,而不是在目录出现时删除它们,我正在将要删除的结构存储在数组中。我需要返回不重复的数组,删除远程计算机上的相同目录
最佳答案
以下是实现这一目标的方法。创建一个假想根。将其标记为白色。
现在检查每个元素并从根开始填充它。例如'2/8/4/6'
将创建一个路径root -> 2 -> 8 -> 4 -> 6
。每个顶点都着色为白色,最后一个顶点着色为黑色。
如果你这样做,你会得到这样的树:
现在做DFS从根开始你会遇到黑色顶点。您的路径将是:
root -> 2
root -> 1
root -> 3 -> test
忽略 root,你就会得到你想要的。
关于algorithm - 查找文件结构中最高的共同兄弟分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35308125/