Можно ли сделать в этой ситуации минимально совершенную хэш-функцию?

Я хочу создать Hash Map (или другую структуру, если у вас есть предложения) для хранения пар ключ-значение. Все ключи будут вставлены одновременно с созданием карты, но я не знаю, какими будут ключи (строки произвольной длины) до времени выполнения, когда мне нужно будет создать карту.

Я анализирую строку запроса, как это"x=100&name=bob&color=red&y=150" (но строка может иметь неограниченное количество переменных, а переменные могут иметь любое имя длины).

Я хочу проанализировать его один раз и создать хэш-карту, желательно минимальную и с идеальной хэш-функцией для удовлетворения требований линейного хранения. Как только карта будет создана, значения не будут изменены или удалены, пары ключей-значений больше не будут добавлены на карту, поэтому вся карта фактически является константой. Я предполагаю, что переменная не встречается дважды в строке (IE."x=1&x=2" не является действительным).

Я кодирую вCи в настоящее время есть функция, которую я могу использовать какget("x") который вернет строку"100", но каждый раз анализирует строку запросаO(n) время. Я хотел бы проанализировать его один раз при первой загрузке, поскольку это очень большая строка запроса и каждое значение будет прочитано несколько раз. Хотя я используюCМне не нужен код вC как ответ. Псевдокод или любые предложения вообще были бы офигенными!

Ответы на вопрос(4)

Ваш ответ на вопрос