博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LintCode] Implement Trie 实现字典树
阅读量:5918 次
发布时间:2019-06-19

本文共 1546 字,大约阅读时间需要 5 分钟。

 

Implement a trie with insert, search, and startsWith methods.

Have you met this question in a real interview?

 
 
Example
Note

You may assume that all inputs are consist of lowercase letters a-z.

 

LeetCode上的原题,请参见我之前的博客。

 

/** * Your Trie object will be instantiated and called as such: * Trie trie; * trie.insert("lintcode"); * trie.search("lint"); will return false * trie.startsWith("lint"); will return true */class TrieNode {public:    // Initialize your data structure here.    TrieNode *child[26];    bool isWord;    TrieNode(): isWord(false) {        for (auto & a : child) a = NULL;    }};class Trie {public:    Trie() {        root = new TrieNode();    }    // Inserts a word into the trie.    void insert(string word) {        TrieNode *p = root;        for (auto &a : word) {            int i = a - 'a';            if (!p->child[i]) p->child[i] = new TrieNode();            p = p->child[i];        }        p->isWord = true;    }    // Returns if the word is in the trie.    bool search(string word) {        TrieNode *p = root;        for (auto &a : word) {            int i = a - 'a';            if (!p->child[i]) return false;            p = p->child[i];        }        return p->isWord;    }    // Returns if there is any word in the trie    // that starts with the given prefix.    bool startsWith(string prefix) {        TrieNode *p = root;        for (auto &a : prefix) {            int i = a - 'a';            if (!p->child[i]) return false;            p = p->child[i];        }        return true;    }private:    TrieNode* root;};

 

转载地址:http://aefvx.baihongyu.com/

你可能感兴趣的文章
【JS学习】慕课网8-17编程练习 网页的返回与跳转
查看>>
chgrp命令
查看>>
使用Python的twisted和socket模块实现端口的负载分发
查看>>
Orchard之生成新模板
查看>>
Android-L-Samples
查看>>
ASP.NET Web API 创建帮助页
查看>>
E. Riding in a Lift(Codeforces Round #274)
查看>>
Java集合框架GS Collections具体解释
查看>>
Andriod小项目——在线音乐播放器
查看>>
JQuery插件:图片上传本地预览插件,改进案例一则。
查看>>
使用react+webpack从零开始打包一个“hello world”
查看>>
NativeScript 2.4版本发布,支持Web Workers规范
查看>>
从微服务迁移到工作流的经验之谈
查看>>
内部领导力:向敏捷演化
查看>>
Nexus指南已经发布
查看>>
为什么要在下班后努力学习?你不知道的秘密...... ...
查看>>
专访张银奎:要抓住技术发展趋势,只有不断学习和更新自己? ...
查看>>
新乡村学者解读一号文件(2):重点关注农村电子商务 ...
查看>>
MongoDB与Java 经典面试题、课程,好资源值得收藏 ...
查看>>
「镁客·请讲」欧帝科技周雪松:一块屏幕或许不能改变命运,但会让教育发展更好 ...
查看>>