208. 实现 Trie (前缀树)

实现一个 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 构成的。

保证所有输入均为非空字符串。

class Trie {

class Node {

boolean isWord;

Node[] next = new Node[26];

}

Node root = new Node();

/** Initialize your data structure here. */

public Trie() {

}

/** Inserts a word into the trie. */

public void insert(String word) {

Node p = root;

for(char ch : word.toCharArray()) {

if(p.next[ch - 'a'] == null)

p.next[ch - 'a'] = new Node();

p = p.next[ch - 'a'];

}

p.isWord = true;

}

/** Returns if the word is in the trie. */

public boolean search(String word) {

Node p = root;

for(char ch : word.toCharArray()) {

if(p.next[ch - 'a'] == null)

return false;

p = p.next[ch - 'a'];

}

return p.isWord;

}

/** Returns if there is any word in the trie that starts with the given prefix. */

public boolean startsWith(String prefix) {

Node p = root;

for(char ch : prefix.toCharArray()) {

if(p.next[ch - 'a'] == null)

return false;

p = p.next[ch - 'a'];

}

return true;

}

}

/**

* Your Trie object will be instantiated and called as such:

* Trie obj = new Trie();

* obj.insert(word);

* boolean param_2 = obj.search(word);

* boolean param_3 = obj.startsWith(prefix);

*/

leetcode前缀树java_Java实现 LeetCode 208 实现 Trie (前缀树)相关推荐

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

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

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

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

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

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

  4. LeetCode 208 实现 Trie (字典树)

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

  5. 字典树实现_【Leetcode每日打卡】单词的压缩编码 Trie(字典树)入门

    一.前言(鸡汤(一段废..话..可以跳过啦)) 同学们好!没想到我这个小小的公众号破千粉啦,对于大佬们而言或许不值一提,但是对我而言是一个莫大的鼓舞!更加坚定了我持续输出优质内容的决心.希望我们都能每 ...

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

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

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

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

  8. 287寻找重复数;6Z 字形变换;142环形链表 II;148排序链表;208实现 Trie (前缀树)

    给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数.假设只有一个重复的整数,找出这个重复的数. 示例 1: 输入: [1,3 ...

  9. leetcode 208. Implement Trie (Prefix Tree) | 208. 实现 Trie 前缀树(Java)

    题目 https://leetcode.com/problems/implement-trie-prefix-tree/ 题解 第一版:暴力法 import java.util.LinkedHashS ...

最新文章

  1. 样式集(五)微信朋友圈样式模拟
  2. Linux更改终端的用户名和主机名的颜色
  3. APP上架证书无效:解决
  4. CodeForces - 932D Tree(树上倍增,好题)
  5. 数据结构(二)---单链表的实现---java版
  6. 【webpack系列】从零搭建 webpack4+react 脚手架(四)
  7. 同时读取两个文件进行while循环
  8. 数据分析-回归-案例-波士顿房价数据集
  9. WGS84 UTM 坐标系及UTM投影分带标准
  10. [OpenCV+VS2015]火焰检测算法(HSI判据)
  11. 专利写作技巧以及流程
  12. web服务器的作用有哪些,web服务器的作用
  13. PHPAdmin数据类型
  14. 使用Rust开发操作系统(UEFI基本介绍)
  15. WAP流量变现的几种方式
  16. Docker容器——重命名镜像的TAG
  17. qq 4 android,Android QQ HD v5.5.4 正式版发布
  18. linux 计价软件,思谷电话计费系统Linux版免费版_思谷电话计费系统Linux版官方下载_思谷电话计费系统Linux版5.1-华军软件园...
  19. php 识别图片主色调,PHP实现获取图片的主色调的方法
  20. 金融量化分析世界观和方法论

热门文章

  1. 打印机显示脱机使用打印机不能打印
  2. Win11开机桌面假死怎么办 win11开机桌面假死的解决方法
  3. socket不能bind请求的地址_深入浅出讲解:php的socket通信
  4. exfat最佳单元大小_2020年Window系统重装最佳方式
  5. 网页页面禁止用户复制源代码
  6. 在JavaWeb中,什么是监听器?(建议收藏)
  7. HTML5新增音频标签(HTML5)
  8. HoloLens 2开发:使用Gaze开发,视线小球不停向眼端移动
  9. 移动应用测试基于JAVA_Appium用于测试Android混合移动应用程序
  10. type=xhr的500错误