我有一个名字和一组名字列表。我可以保证所选的名字包含在其他名称列表中。
我想生成所选名称的最短子字符串,该子字符串仅由该名称包含,而不由数据中任何其他名称包含。
>>> names = ['smith','jones','williams','brown','wilson','taylor','johnson','white','martin','anderson']
>>> find_substring('smith', names)
"sm"
>>> find_substring('williams', names)
"ll"
>>> find_substring('taylor', names)
"y"
我可以很容易地使用暴力破解方法,通过取选定名称的第一个字母并查看它是否与任何名称匹配,然后迭代遍历其余字母后跟一对字母等。
但我的问题是,我的列表包含超过一万个名称,并且它们相当长——更类似于书名。暴力破解需要非常长的时间。
有没有一些简单的方法可以高效地实现这一点?
names
列表是固定的? - kaya3