实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。

示例:

Trie trie = new Trie();

trie.insert("apple");
trie.search("apple");   // 返回 true
trie.search("app");     // 返回 false
trie.startsWith("app"); // 返回 true
trie.insert("app");   
trie.search("app");     // 返回 true
说明:

你可以假设所有的输入都是由小写字母 a-z 构成的。
保证所有输入均为非空字符串。

前缀树介绍

public class Trie {private boolean is_string=false;private Trie next[]=new Trie[26];public Trie(){}public void insert(String word){//插入单词Trie root=this;char w[]=word.toCharArray();for(int i=0;i<w.length;++i){if(root.next[w[i]-'a']==null)root.next[w[i]-'a']=new Trie();root=root.next[w[i]-'a'];}root.is_string=true;}public boolean search(String word){//查找单词Trie root=this;char w[]=word.toCharArray();for(int i=0;i<w.length;++i){if(root.next[w[i]-'a']==null)return false;root=root.next[w[i]-'a'];}return root.is_string;}public boolean startsWith(String prefix){//查找前缀Trie root=this;char p[]=prefix.toCharArray();for(int i=0;i<p.length;++i){if(root.next[p[i]-'a']==null)return false;root=root.next[p[i]-'a'];}return true;}
}

leetcode208. 实现 Trie (前缀树)相关推荐

  1. LeetCode 208. 实现 Trie (前缀树) —— 提供一套前缀树模板

    208. 实现 Trie (前缀树) Ideas 前缀树嘛,直接套模板咯,把之前写的拿过来抄一遍. 提供一下我的模板. Code Python class TrieNode:def __init__( ...

  2. leetcode 676. Implement Magic Dictionary | 676. 实现一个魔法字典(DFS+Trie 前缀树)

    题目 https://leetcode.com/problems/implement-magic-dictionary/description/ 题解 题意理解 前缀树问题,大意是是让你在字典中找到是 ...

  3. leetcode 677. Map Sum Pairs | 677. 键值映射(Trie前缀树,BFS)

    题目 https://leetcode.com/problems/map-sum-pairs/ 题解 基于前缀树实现,可以参考:leetcode 208. Implement Trie (Prefix ...

  4. 208. 实现 Trie (前缀树)

    208. 实现 Trie (前缀树) Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键.这一数据结构有相当多的应用情景,例 ...

  5. Leetcode —— 208. 实现 Trie (前缀树)(Python)

    实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie();trie.insert(" ...

  6. 【LeetCode】【HOT】208. 实现 Trie (前缀树)

    [LeetCode][HOT]208. 实现 Trie (前缀树) 文章目录 [LeetCode][HOT]208. 实现 Trie (前缀树) package hot;public class So ...

  7. leetcode前缀树java_Java实现 LeetCode 208 实现 Trie (前缀树)

    208. 实现 Trie (前缀树) 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie() ...

  8. 实现 Trie (前缀树)

    题目描述 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie(); trie.insert( ...

  9. Leetcode 208.实现 Trie (前缀树)(Implement Trie (Prefix Tree))

    Leetcode 208.实现 Trie (前缀树) 1 题目描述(Leetcode题目链接)   实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三 ...

最新文章

  1. UITextField的代理方法
  2. 提升工作效率,请收下这10个办公神器
  3. 如何固化预训练模型的参数
  4. 用python监控磁盘_使用python怎么对服务器cpu和磁盘空间进行监控
  5. Ubantu中安装sublime
  6. catia直线测距怎么调出来_CATIA怎么测量两线夹角.
  7. 手机MODEM 开发(32)--VOLTE 信令
  8. OpenShift 4 - 为Serivce Account赋权
  9. centos7.9使用rpm安装Jenkins_亲测成功---持续集成部署Jenkins工作笔记0022
  10. layui 解决浏览器自动填充form表单账号和密码输入框的问题
  11. 12,mac phpstorm xdebug
  12. Windows server 2012 R2 无法安装vc2015
  13. JDY-18+STM32的蓝牙APP控制 PWM灯光
  14. Jquery实现确定取消对话框
  15. shader篇-单张纹理
  16. 万字长文的Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!
  17. [c/c++] linux c生成静态库共享库 - bluefrog - 博客园
  18. Deployer 使用问题
  19. 时间与日期处理模块 题目解题报告
  20. 改造Android手机为,便携式linux服务器,跑tomcat

热门文章

  1. stm32 485和232可以用同一个串口吗_STM32的复用时钟何时开启?
  2. 磁盘的磁道(Track)
  3. 解决Ubuntu下切换到root用户后没有声音问题
  4. 写在S3C2440A平台+winCE5.0+NAND +HIVE注册表的实现
  5. potplayer 多个进程_操作系统 | 进程同步与进程互斥
  6. delphi xe2 project菜单怎么没有加组件功能_交互设计:让人困惑的三大交互组件及用法...
  7. arcgis缓冲后在envi中聚类出错
  8. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python函数)
  9. 【转】VS编程,快速折叠或者展开代码到 #region 级别的设置方法。
  10. imp命令导入指定表_Oracle—— 导入/导出 数据:exp,imp 命令