俄罗斯方块阵列

2022-08-30 07:40:32

请考虑以下数组:

/www/htdocs/1/sites/lib/abcdedd
/www/htdocs/1/sites/conf/xyz
/www/htdocs/1/sites/conf/abc/def
/www/htdocs/1/sites/htdocs/xyz
/www/htdocs/1/sites/lib2/abcdedd

检测公共基本路径的最短和最优雅的方法是什么 - 在这种情况下

/www/htdocs/1/sites/

并将其从数组中的所有元素中删除?

lib/abcdedd
conf/xyz
conf/abc/def
htdocs/xyz
lib2/abcdedd

答案 1

编写一个将两个字符串作为输入的函数。然后以任意顺序将其应用于字符串,以将其简化为其公共前缀。由于它是关联和可交换的,因此顺序对结果无关紧要。longest_common_prefix

这与其他二进制操作相同,例如加法或最大公约数。


答案 2

将它们加载到三重数据结构中。从父节点开始,看看哪个子节点比一个子节点重要。找到该神奇节点后,只需拆除父节点结构并将当前节点作为根节点即可。


推荐