以 app 开头的有几个
词库是 apple、app、apply、banana。运行下面这段程序:
def build_trie(words):
t = {}
for w in words:
node = t
for ch in w:
if ch not in node:
node[ch] = {}
node = node[ch]
node["#"] = True
return t
def walk(t, pre):
node = t
for ch in pre:
if ch not in node:
return None
node = node[ch]
return node
def collect(node, cur, out):
if "#" in node:
out.append(cur)
for ch in node:
if ch != "#":
collect(node[ch], cur + ch, out)
t = build_trie(["apple", "app", "apply", "banana"])
out = []
collect(walk(t, "app"), "app", out)
print(len(out))
全部评论