某文件系统中存在一些重复的文件夹,需要找出来并删除。
重复文件夹的定义:如果存在两个(或以上)的文件夹,包含非空且相同的子文件夹,且子文件夹的结构也相同,则认为这些文件夹是重复文件夹。重复文件夹可以属于不同的文件层级。
例如,存在如下文件夹结构:
/a/x/y/
在某文件系统中,存在一些重复的文件夹,重复文件夹的定义为:如果两个或多个文件夹包含相同的非空子文件夹,并且这些子文件夹的结构也相同,则这些文件夹被认为是重复的。输入由多行组成,第一行是文件夹路径的数量 n,接下来的 n 行是各个文件夹的路径。路径以 "/" 开头和结尾,中间每层由 "/" 分隔。输出所有重复文件夹的父路径,按字典升序排列;如果不存在重复的文件夹,则输出“NotFound”。
问题本质为:构建出文件目录树后,询问有多少个子树,忽略根节点以后,他们的子树完全相等。
一个朴素的思路是枚举所有子树,然后进行递归check。