[英]How to find all common longest substrings of a list of strings
我有一個字符串列表,我需要為其找到所有具有最小長度的所有常見唯一子字符串(實際上是路徑)。 例:
/a/b/c
/a/b
/a
/d/e/f
/d/e
/g/h
對於此輸入,我需要以下結果:
/a
/d/e
/g/h
如您所見,我需要具有唯一前綴的最小長度的路徑(或子字符串)。 / a是所有以/ a開頭的路徑的最小子字符串。 / d / e是所有以/ d / e開頭的路徑的最小子字符串。 / g / h也是如此。
此方法的實際應用是查找其中具有特定文件的路徑樹的所有根,以對其進行進一步分析。 考慮以下示例:
/a/b/c/index.html
/a/b/index.html
/a/index.html
/d/e/f/index.html
/d/e/index.html
/g/h/index.html
假設我想擁有包含index.html文件的最頂層(就根而言)路徑。 結果,我想要“ /a/index.html”、“/d/e/index.html”和“ /g/h/index.html”。
有任何想法嗎? 關於“簡單的”最長公共子串問題,有很多理論和示例,但我還沒有找到有效找到所有公共最長子串的解決方案。
具有偽代碼的解決方案將是高度贊賞的。
現在,通過改進的描述,我認為以下算法可以實現:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.