Pin学习1

什么是插桩(Instrumentation)?

向程序注入额外的代码来收集程序运行时的状态。

插桩(Instrumentation)的方法:

  • 源代码插桩(source instrumentation)
    ——对源码进行操作

  • 二进制插桩(Binary instrumentation)
    ——运行时直接注入

阅读更多

字典树Trie2

接着上一篇字典树结构的讲解,我们接着使用C++Python来实现字典树。

一、LeetCode的字典树

LeetCode 208 要求实现字典树。

Implement a trie with insert, search, and startsWith methods.
Note:
You may assume that all inputs are consist of lowercase letters a-z.

阅读更多

Trie字典树

一、字典树

字典树——Trie树,又称为前缀树(Prefix Tree)、单词查找树或键树,是一种多叉树结构。

上图是一棵__Trie__树,表示了关键字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 。从上图可以归纳出Trie树的基本性质:

  1. 根节点不包含字符,除根节点外的每一个子节点都包含一个字符。

  2. 从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。

  3. 每个节点的所有子节点包含的字符互不相同。

    • 通常在实现的时候,会在结点结构中设置一个标志,用来标记该节点处是否构成一个单词(关键字)。
    • 可以看出,Trie树的关键字一般都是字符串,而且Trie树把每个关键字保存在一条路径上,而不是一个节点中。另外,有两个公共前缀的关键字,在Trie树种前缀部分的路径相同。所以Trie又称为前缀树。
阅读更多