code: def delete(self, key):
          
          if not is_string(key):
              raise Exception("Key must be string")
  
          if len(key) > 32:
              raise Exception("Max key length is 32")
  
          old_root = copy.deepcopy(self.root_node)
          self.root_node = self._delete_and_delete_storage(
              self.root_node,
              bin_to_nibbles(to_string(key)))
          self.replace_root_hash(old_root, self.root_node)
docs: :param key: a string with length of [0, 32]