Вот вопрос:
Данный простой текстовый файл, содержащий диапазон IP-адресов, которые отображают к месту (напр. 192.168.0.0-192.168.0.255 = Бостон, Массачусетс), придумайте алгоритм, который найдет город для определенного IP-адреса, если существует сопоставление.
Моя единственная идея состоит в том, чтобы разобрать файл и преобразовать диапазоны IP-адресов в просто целые числа (умножая на 10/100, если в нем отсутствуют цифры) и поместить их в список, а также поместить меньшие диапазоны в хэш в качестве ключ с местоположением в качестве значения. Отсортируйте список и выполните слегка модифицированный бинарный поиск. Если индекс нечетный, -1 и смотреть в хеше. Если это даже, просто посмотрите на хэш.
Есть ошибки в моих планах или лучшие решения?