You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.9 KiB
1.9 KiB
id | title | toc_max_heading_level |
---|---|---|
trie | Trie | 2 |
Introduction
Tries are special trees (prefix trees) that make searching and storing strings more efficient. Tries have many practical applications, such as conducting searches and providing autocomplete. It is helpful to know these common applications so that you can easily identify when a problem can be efficiently solved using a trie.
Be familiar with implementing from scratch, a Trie
class and its add
, remove
and search
methods.
Learning resources
- Readings
- Trying to Understand Tries, basecs
- Implement Trie (Prefix Tree), LeetCode
- Additional (only if you have time)
Time complexity
m
is the length of the string used in the operation.
Operation | Big-O | Note |
---|---|---|
Search | O(m) | |
Insert | O(m) | |
Remove | O(m) |
Corner cases
- Searching for a string in an empty trie
- Inserting empty strings into a trie
Techniques
Sometimes preprocessing a dictionary of words (given in a list) into a trie, will improve the efficiency of searching for a word of length k, among n words. Searching becomes O(k) instead of O(n).
Recommended questions
Recommended courses
import AlgorithmCourses from '../_courses/AlgorithmCourses.md'