I have a fixed list of strings of the same length. I want to store them in a hash table, that would consume the least memory without deteriorating the expected look up time.
Theoretically, it is possible to find one to one mapping between the strings and integers, so that the look up time would be constant.
The question is how to find the "best" hash function that would get me close to this goal? A possible way to do so is to just try many hash functions and choose the one with the least number of collisions. Is there an "analytic" approach?