Spaces:
Running
Running
| # ------------------------------------------------------------------------ | |
| # Modified from OFA (https://github.com/OFA-Sys/OFA) | |
| # Copyright 2022 The OFA-Sys Team. | |
| # All rights reserved. | |
| # This source code is licensed under the Apache 2.0 license | |
| # found in the LICENSE file in the root directory. | |
| # ------------------------------------------------------------------------ | |
| # Modifications Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| from collections import defaultdict | |
| class TreeNode(): | |
| def __init__(self): | |
| self.child = defaultdict(TreeNode) | |
| class Trie: | |
| def __init__(self, eos): | |
| self.root = TreeNode() | |
| self.eos = eos | |
| def insert(self, word): | |
| cur = self.root | |
| for c in word: | |
| cur = cur.child[c] | |
| def get_next_layer(self, word): | |
| cur = self.root | |
| for c in word: | |
| cur = cur.child.get(c) | |
| if cur is None: | |
| return [self.eos] | |
| return list(cur.child.keys()) | |