我出现在一次采访中,我被要求编写一个用于部分密钥散列的算法,即;如果将 ABCBC 插入哈希中,则搜索任何子字符串都应返回存储的值。我的答案是创建给定键的所有可能子字符串的集合,并维护每个子字符串与其一个或多个父字符串之间的映射。然后维护所有子字符串的集合的 BST。每个节点将指向该子字符串可能匹配的实际值的集合。例如。A, AB, ABC, ABCB, ABCBC, B, BC, BCB, BCBC, C, CB, CBC 是这个字符串的可能子串。可能还有其他字符串也像 BAB 一样,其中 AB 和 B 是子字符串。所以给定 AB,它将映射到两个字符串 BAB 和 ABCBC。
还有其他更有效的方法吗?谢谢