public void Add(string str, int value)
        {
            ReadOnlySpan <byte> bytes = Encoding.UTF8.GetBytes(str);
            AutomataNode        node  = this.root;

            while (bytes.Length > 0)
            {
                var key = AutomataKeyGen.GetKey(ref bytes);

                if (bytes.Length == 0)
                {
                    node = node.Add(key, value, str);
                }
                else
                {
                    node = node.Add(key);
                }
            }
        }