农场主有一群奶牛,为了方便管理,他为每头奶牛起了一个名字。为了方便查找,农场主想要设计一个名字管理系统,用于快速查找奶牛的名字。他决定使用前缀树(Trie)作为名字管理系统的数据结构。请你实现一个名字管理系统,支持插入名字、查找名字和查找具有某个前缀的名字。 实现一个名字管理系统类CowNameSystem,包含以下方法: CowNameSystem():初始化名字管理系统对象。 void insert(string name):向名字管理系统中插入奶牛名字name。 bool search(string name):如果名字name在名字管理系统中,返回true;否则,返回false。 bool startsWith(string prefix):如果之前已经插入的名字中有一个名字的前缀为prefix,返回true;否则,返回false。
示例1
输入
["insert", "search", "search", "startsWith", "insert", "search"],[["apple"], ["apple"], ["app"], ["app"], ["app"], ["app"]]
输出
["null","true","false","true","null","true"]
示例2
输入
["insert", "search", "startsWith", "insert", "search", "startsWith"],[["banana"], ["banana"], ["ban"], ["orange"], ["orange"], ["ora"]]
输出
["null","true","true","null","true","true"]
备注:
1 name 和 prefix 仅由小写英文字母组成insert、search 和 startsWith 调用次数总计不超过 3 * 10^4 次
加载中...