数一数一共有几个目录

补全 dirs:递归数出目录的个数(根目录自己也算一个)。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

最深的那一枝有几层

补全 deepest:返回这棵文件树最深有几层(根目录算第 1 层)。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

某个文件藏在第几层

补全 level_of:递归找出某个文件在第几层(根目录算第 1 层),找不到返回 0。这次找的是 helper.py。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

Trie 往下一层代表什么

前缀树(Trie)里,从一个节点往下走一步,代表【0】。

开始练习 →

Trie 查前缀为什么快

第 1 步:空的前缀树 第 2 步:插入 cat:一个字符一层 第 3 步:插入 car:c、a 共用 第 4 步:插入 dog:另开一枝 第 5 步:查 ca:只走两步 第 6 步:a 下面挂着 2 个词 · c a t r d o g

开始练习 →

走完 c-a-t 是不是一个词

词库里有 cat、car、card、dog。运行下面这段程序: #include <iostream> #include <map> #include <string> using namespace s

开始练习 →

走完 c-a 之后呢

同一个词库。运行下面这段程序: #include <iostream> #include <map> #include <string> using namespace std; struct Trie

开始练习 →

把词一个个插进前缀树

补全 trie_insert:沿着每个字符往下走,没有的路就现开一条,走到词尾把 end 标成 true。四个词全插完之后,输出根下面有几条不同的分支。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

查一个完整的词在不在

补全 trie_search:整个词都在、而且末尾有标记才算在。查 car,输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

是前缀但不是词

同一个 trie_search,这次查 ca。它是 cat / car / card 三个词的开头,但它自己不是一个词——下面这版少了末尾标记的判断,会答错,把它改对。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →