
    f                     ,     G d  d      Z  G d d      Zy)c                       e Zd ZdZd Zy)Nodevaluechildrenc                      d | _         d | _        y Nr   selfs    *lib/python3.12/site-packages/pyuca/trie.py__init__zNode.__init__   s    
    N)__name__
__module____qualname__	__slots__r    r   r   r   r      s    %Ir   r   c                       e Zd Zd Zd Zd Zy)Triec                 "    t               | _        y r   )r   rootr	   s    r   r   zTrie.__init__   s    F	r   c                     | j                   }|D ]9  }|j                  i |_        |j                  j                  |t                     }; ||_        y r   )r   r   
setdefaultr   r   )r
   keyr   	curr_nodeparts        r   addzTrie.add   sL    II	D!!)%'	"!**55dDFCI   	r   c                     | j                   }d}d }t        |      D ]N  \  }}|j                  ||j                  vr n/|j                  |   }|j                  s>|dz   }|j                  }P |d | |||d  fS )N       )r   	enumerater   r   )r
   r   r   success_indexsuccess_valueir   s          r   find_prefixzTrie.find_prefix   s    II	 ~GAt!!)T9K9K-K!**40I !A ) & >M"M3}~3FFFr   N)r   r   r   r   r   r$   r   r   r   r   r   	   s     Gr   r   N)r   r   r   r   r   <module>r%      s    G Gr   