我们有到字符串对的升压路径映射,例如名称:位置(绝对位置路径a lausr/myfolder/
)。我们得到了一些位置a lausr/myfolder/mysubfolder/myfile
。如何找到哪个地图位置最适合给定的网址?
例如,我们有一张地图,如果需要,我们可以使用它:
service1:myfolder/
service2:myfolder/mysubfolder/
service3:myfolder/myothersubfolder/
service4:myfolder/mysubfolder/myfile
我们被赋予价值myfolder/mysubfolder/myfile/blablabla/
(小路)。
我们想要找出它与地图中的哪个项目最相关。
搜索结果应为service4
作为具有最相关内容的地图项。
那么如何根据给定的字符串值找到与哪个映射元素最相关的呢?
So 原问题 https://stackoverflow.com/questions/5979442/having-a-map-of-strings-how-to-compare-it-to-given-string是关于一般字符串情况,但我进行了一些重新配置,所以不,我只是在升压路径上工作。
我确实没有现成的 C++ 答案,但我最近不得不在 C# 中做类似的事情,并提出以下内容:
循环遍历整个向量,检查有趣的路径以查看它是否以元素开头。这longest这样的比赛就是胜利者。这将是一个 O(n) 操作,具体取决于比较集中的路径数量。
我对上述内容的改进版本变得有点不同,因为我将检查我之前已经检查过的一些条目。
因此,我按路径长度降序对向量进行排序,这样我遇到的第一个匹配项也是最好的(我认为给我一个平均 O(n/2) 操作),并将结果存储到字典中,所以我不需要再次强力搜索。
希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)