我在网上遇到了以下面试问题。根据我的理解,它要求您设计一个数据结构来模拟文件系统。任何人都可以给我一些提示吗?
// addMapping("/foo/bar/x", "XController")
// addMapping("/foo/bar/z", "ZController")
// addMapping("/foo/baz", "BazController");
//getMapping("/foo/bar/x") -> ["XController"]
//getMapping("/foo/bar") -> ["XController", "ZController"]
public void addMapping(String path, String destination) {
//candidate TODO
}
public List<String> getMapping(String path) {
//candidate TODO
}
答案 0 :(得分:1)
我认为用于此映射的最佳结构是Trie甚至更好的压缩版本 - Patricia Tree(a.k.a radix tree)。这个想法如下 - 两个结构都存储字典单词的前缀。当用户查询给定路径时,您将根据查询字符串遍历结构(无论是trie还是基数树)。之后,您可以在最终结束的节点下遍历子树,并打印与该节点关联的所有控制器。