Как решить задачу объединения чисел по префиксу? Суть задачи:
Есть случайный список префиксов телефонных номеров, т. е. чисел в диапазоне от 1 до 99 999 999 999 (максимальная длина 11 знаков), представленных в виде строки.
Необходимо привести номера в этом списке к наибольшему префиксу, а именно:
- например, если в списке есть префиксы 1230, 1231, 1232 ... 1239, они удаляются и вместо них добавляется префикс 123;
- далее цикл повторяется - если в списке есть префиксы 120, 121, 122, 123 ... 129, они объединяются к 12.
- и так пока все элементы списка не объединяться к наибольшему префиксу.
- префиксы начинающиеся с 0 объединять не нужно.
Ткните, пожалуйста, в алгоритм решения этой задачи. Вижу, что вроде перебор и рекурсия, но с какого конца начать не понимаю.

21 Авг 2019 в 06:12
113 +1
1
Ответы
1

Для решения этой задачи можно воспользоваться следующим алгоритмом:

Создать пустой словарь, где ключом будет являться префикс, а значением - список всех номеров с таким префиксом.Пройти по каждому номеру в исходном списке и добавить его в словарь, используя подходящий префикс. (например, для номера 1234 нужно добавить его в список префикса 123)Пройти по словарю и для каждого префикса проверить, есть ли в нем номера. Если номера есть, то необходимо удалить последний символ префикса и добавить номеры в список префикса на один уровень выше. (например, если есть префикс 123 и номера в нем есть, то нужно объединить их с префиксом 12)Повторить шаг 3, пока в словаре не останутся только префиксы без номеров.

Таким образом, после завершения алгоритма в списке останутся только номера с наибольшим префиксом.

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 91 905 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир