我在python中实现了一个Trie.直到现在我遇到了两种不同的方法来实现它:
char - 存储角色
is_end - 存储单词结尾(true或false)
prefix_count - 存储具有当前前缀的单词数
child - 节点类型dict(用于存储其他节点,即26个字母)
class Node(object):
def __init__(self):
self.char = ''
self.word = ''
self.is_end = False
self.prefix_count = 0
self.child = {}
Run Code Online (Sandbox Code Playgroud)
words = {'foo', 'bar', 'baz', 'barz'}Run Code Online (Sandbox Code Playgroud){'b': {'a': {'r': {'_end_': '_end_', 'z': {'_end_': '_end_'}}, 'z': {'_end_': '_end_'}}}, 'f': {'o': {'o': {'_end_': '_end_'}}}}
哪个是高效且标准的数据结构,对于大数据集单词的遍历和其他trie操作,它既高效又快速?
我正在使用group_concat/string_agg(可能是 varchar),并希望确保 bigquery 不会删除任何连接的数据。
我正在使用 dagger 2 进行依赖注入,但陷入了字段注入的困境。以下是带有代码示例的完整场景:
假设我们有一个 A 类,它依赖于 B 库
class A {
@Inject
B b;
}
Run Code Online (Sandbox Code Playgroud)
B 模块:
@Module
public class BModule {
@Provides
@Singleton
public B provideB() {
return new C.methodA();
// C - static class; C.methodA returns B
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在 A 类中使用时,我会得到空指针异常,但如果我使用构造函数注入b执行相同的操作,那么它会完美运行。我可以保证组件和其他依赖项都很好,因为构造函数部分可以正常工作。
A 是某个其他类(我们称之为 X)的依赖项,并且 A 正在使用构造函数注入进行初始化(已测试)。另外,X 被注入为void inject(X x);
我有两个问题:
PS:我刚刚分享了部分代码,因为存在多个依赖项,所以只是想解释一下场景。如果问题/场景仍然不清楚或需要更多信息,请告诉我。
谢谢。