directory
0.0.0-20240920062246-d0657495930a
Repository: https://github.com/yigmmk/leetcode.git
Documentation: pkg.go.dev
# Packages
* @lc app=leetcode.cn id=1233 lang=golang
*
* [1233] 删除子文件夹
*
* https://leetcode.cn/problems/remove-sub-folders-from-the-filesystem/description/
*
* algorithms
* Medium (56.75%)
* Likes: 101
* Dislikes: 0
* Total Accepted: 17.8K
* Total Submissions: 31.5K
* Testcase Example: '["/a","/a/b","/c/d","/c/d/e","/c/f"]'
*
* 你是一位系统管理员,手里有一份文件夹列表 folder,你的任务是要删除该列表中的所有 子文件夹,并以 任意顺序 返回剩下的文件夹。
*
* 如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下,那么 folder[i] 就是 folder[j] 的 子文件夹 。
*
* 文件夹的「路径」是由一个或多个按以下格式串联形成的字符串:'/' 后跟一个或者多个小写英文字母。
*
*
* 例如,"/leetcode" 和 "/leetcode/problems" 都是有效的路径,而空字符串和 "/" 不是。
*
*
*
*
* 示例 1:
*
*
* 输入:folder = ["/a","/a/b","/c/d","/c/d/e","/c/f"]
* 输出:["/a","/c/d","/c/f"]
* 解释:"/a/b" 是 "/a" 的子文件夹,而 "/c/d/e" 是 "/c/d" 的子文件夹。
*
*
* 示例 2:
*
*
* 输入:folder = ["/a","/a/b/c","/a/b/d"]
* 输出:["/a"]
* 解释:文件夹 "/a/b/c" 和 "/a/b/d" 都会被删除,因为它们都是 "/a" 的子文件夹。
*
*
* 示例 3:
*
*
* 输入: folder = ["/a/b/c","/a/b/ca","/a/b/d"]
* 输出: ["/a/b/c","/a/b/ca","/a/b/d"]
*
*
*
* 提示:
*
*
* 1 <= folder.length <= 4 * 10^4
* 2 <= folder[i].length <= 100
* folder[i] 只包含小写字母和 '/'
* folder[i] 总是以字符 '/' 起始
* 每个文件夹名都是 唯一 的
*
*
*/.
* @lc app=leetcode.cn id=1268 lang=golang
*
* [1268] 搜索推荐系统
*
* https://leetcode.cn/problems/search-suggestions-system/description/
*
* algorithms
* Medium (59.98%)
* Likes: 165
* Dislikes: 0
* Total Accepted: 19K
* Total Submissions: 31.7K
* Testcase Example: '["mobile","mouse","moneypot","monitor","mousepad"]\n"mouse"'
*
* 给你一个产品数组 products 和一个字符串 searchWord ,products 数组中每个产品都是一个字符串。
*
* 请你设计一个推荐系统,在依次输入单词 searchWord 的每一个字母后,推荐 products 数组中前缀与 searchWord
* 相同的最多三个产品。如果前缀相同的可推荐产品超过三个,请按字典序返回最小的三个。
*
* 请你以二维列表的形式,返回在输入 searchWord 每个字母后相应的推荐产品的列表。
*
*
*
* 示例 1:
*
* 输入:products = ["mobile","mouse","moneypot","monitor","mousepad"], searchWord
* = "mouse"
* 输出:[
* ["mobile","moneypot","monitor"],
* ["mobile","moneypot","monitor"],
* ["mouse","mousepad"],
* ["mouse","mousepad"],
* ["mouse","mousepad"]
* ]
* 解释:按字典序排序后的产品列表是 ["mobile","moneypot","monitor","mouse","mousepad"]
* 输入 m 和 mo,由于所有产品的前缀都相同,所以系统返回字典序最小的三个产品 ["mobile","moneypot","monitor"]
* 输入 mou, mous 和 mouse 后系统都返回 ["mouse","mousepad"]
*
*
* 示例 2:
*
* 输入:products = ["havana"], searchWord = "havana"
* 输出:[["havana"],["havana"],["havana"],["havana"],["havana"],["havana"]]
*
*
* 示例 3:
*
* 输入:products = ["bags","baggage","banner","box","cloths"], searchWord =
* "bags"
*
* 输出:[["baggage","bags","banner"],["baggage","bags","banner"],["baggage","bags"],["bags"]]
*
*
* 示例 4:
*
* 输入:products = ["havana"], searchWord = "tatiana"
* 输出:[[],[],[],[],[],[],[]]
*
*
*
*
* 提示:
*
*
* 1 <= products.length <= 1000
* 1 <= Σ products[i].length <= 2 * 10^4
* products[i] 中所有的字符都是小写英文字母。
* 1 <= searchWord.length <= 1000
* searchWord 中所有字符都是小写英文字母。
*
*
*/.
* @lc app=leetcode.cn id=208 lang=golang
*
* [208] 实现 Trie (前缀树)
*
* https://leetcode.cn/problems/implement-trie-prefix-tree/description/
*
- algorithms
- Medium (71.91%)
- Likes: 1553
- Dislikes: 0
- Total Accepted: 292.1K
- Total Submissions: 406.3K
- Testcase Example: '["Trie","insert","search","search","startsWith","insert","search"]\n' +
'[[],["apple"],["apple"],["app"],["app"],["app"],["app"]]'
*
* Trie(发音类似 "try")或者说 前缀树
* 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。
*
* 请你实现 Trie 类:
*
*
* Trie() 初始化前缀树对象。
* void insert(String word) 向前缀树中插入字符串 word 。
* boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回
* false 。
* boolean startsWith(String prefix) 如果之前已经插入的字符串 word 的前缀之一为 prefix ,返回 true
* ;否则,返回 false 。
*
*
*
*
* 示例:
*
*
* 输入
* ["Trie", "insert", "search", "search", "startsWith", "insert", "search"]
* [[], ["apple"], ["apple"], ["app"], ["app"], ["app"], ["app"]]
* 输出
* [null, null, true, false, true, null, true]
*
* 解释
* 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
*
*
*
*
* 提示:
*
*
* 1
* word 和 prefix 仅由小写英文字母组成
* insert、search 和 startsWith 调用次数 总计 不超过 3 * 10^4 次
*
*
*/.