Ответы пользователя по тегу Алгоритмы
  • Какой алгоритм подойдет для наиболее оптимального решения задачи?

    @GreenBear
    Если два номера "похожи", значит у них есть ровно один отличающийся символ, который расположен в той же самой позиции. Это значит, если у всех номеров удалить символ из конкретной позиции, то все "похожие" номера станут идентичными между собой. А значит их можно собрать в словарь, где ключ - это урезанный номер, а значение - это массив неурезанных "похожих" номеров.

    В номере 11 значащих символов. Убираем сначала у всех первый символ, получаем первый словарь с похожими номерами.
    Потом из начальных номеров убираем второй символ, и получаем второй словарь с "похожими номерами" по второй позиции.
    И так делаем 11 раз, пока у нас не получится 11 словарей.
    Далее из каждого словаря остается выбрать только те значения, в которых более одного элемента в массиве.
    Останется только составить пары номеров, взятых из этих массивов.

    Такой алгоритм будет работать некорректно, если изначально есть полностью идентичные номера, но если я правильно понял, изначально они все разные.
    Ответ написан
    3 комментария