Моя математика не справляется со мной! Мне нужен эффективный способ сокращения диапазонов сети до надмножеств, например. если я ввожу список диапазонов IP:
- 1.1.1.1 - 2.2.2.5
- 1.1.1.2 - 2.2.2.4
- 10.5.5.5 до 155.5.5.5
- 10.5.5.6 - 10.5.5.7
Я хочу вернуть следующие диапазоны:
- 1.1.1.1 - 2.2.2.5
- 10.5.5.5 до 155.5.5.5
Примечание: списки ввода не упорядочены (хотя они могут быть?). Наивный способ сделать это - проверить каждый диапазон в списке, чтобы увидеть, является ли диапазон ввода x подмножеством, и если да, НЕ вставляйте диапазон x. Однако всякий раз, когда вы вставляете новый диапазон, это может быть надмножество существующих диапазонов, поэтому вам нужно проверить существующие диапазоны, чтобы увидеть, могут ли они быть свернуты (например, удалены из моего списка).