1

使用python在路径字符串列表中查找最长公共父路径字符串列表的最有效方法是什么?

附加说明如果有两个或更多匹配项,我想根据需要下降以创建尽可能少的冗余

输入列表

input_paths = [
  '/path/to/a/directory/of/files',
  '/path/to/a/directory/full/of/files',
  '/path/to/some/more/files',
  '/path/to/some/more/directories/of/files'
  '/path/to/another/file',
  '/mount/another/path/of/files',
  '/mount/another/path/of/test/stuff',
  '/mount/another/path/of/files/etc',
  '/mount/another/drive/of/things',
  '/local/folder/of/documents'
]

输出列表

common_prefix_list = [
  '/path/to/a/directory',
  '/path/to/some/more',
  '/path/to/another',
  '/mount/another/path/of',
  '/local/folder/of'
]

我的初步猜测是在 os.sep 上拆分为列表,然后使用集合交集,但我相信有更强大的算法可以找到本质上最长的公共子字符串问题。我确信这已经完成了一百万次,所以请提供你优雅的解决方案。

我的最终任务是将不同路径中项目共有的资产列表收集到一个公共文件夹中,该文件夹的结构不会与单个资产产生冲突,也不会创建过度冗余的路径。

4

0 回答 0