leetcode 208 Implement Trie (Prefix Tree)解题笔记--不断简化的多个版本



leetcode 208 Implement Trie (Prefix Tree)解题笔记--不断简化的多个版本

题目要求实现一个基本的trie数据结构,也称为前缀树,
要求实现insert, search, startWith三个接口,
其中所有的输入字符串的字符都是a-z

解题思路分析

  1. trie的基本结构是一个多叉树, 每个节点表示一个字符, 然后从根节点到叶节点的完整路径表示一个字符串。
    比如这里有一个比较详细的介绍。
    https://www.cnblogs.com/huangxincheng/archive/2012/11/25/2788268.html
  2. trie的主要用处: 字符串匹配, 前缀匹配, 还可以在上面加上额外信息,比如加上频率,然后可以做词频统计等
  3. trie的主要实现, 每个节点会有多个children, 然后每次添加一个新的字符串的时候, 逐个字符访问node走下来, 如果到某一个节点的时候字符如果不存在,那么就添加一个新的节点, 然后一路下去。


Read full article from leetcode 208 Implement Trie (Prefix Tree)解题笔记--不断简化的多个版本


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts