1 / 1 / 0
Регистрация: 11.01.2017
Сообщений: 28
|
||||||
1 | ||||||
Оптимизация кода10.04.2018, 11:45. Показов 5256. Ответов 4
Добрый день!
Решаю задачу по учебе и вроде код по условию верный, но при тестах выдает ошибку Runtime Error - там лимит ограничения в 5 секунд и возможно дело в этом. Помогите, пожалуйста, ускорить код. Может быть поможете заменить часть кода, ибо у меня голова уже не работает за 3 дня этой головоломки. Условие: Реализуйте программу, которая будет эмулировать работу с пространствами имен. Необходимо реализовать поддержку создания пространств имен и добавление в них переменных. В данной задаче у каждого пространства имен есть уникальный текстовый идентификатор – его имя. Вашей программе на вход подаются следующие запросы: create <namespace> <parent> – создать новое пространство имен с именем <namespace> внутри пространства <parent> add <namespace> <var> – добавить в пространство <namespace> переменную <var> get <namespace> <var> – получить имя пространства, из которого будет взята переменная <var> при запросе из пространства <namespace>, или None, если такого пространства не существует Один из примеров данных ввода-вывода: Sample Input: 9 add global a create foo global add foo b get foo a get foo c create bar foo add bar a get bar a get bar b Sample Output: global None bar foo
0
|
10.04.2018, 11:45 | |
Ответы с готовыми решениями:
4
Оптимизация кода Оптимизация кода Оптимизация кода Оптимизация кода простого калькулятора Фрактальное Броуновское движения ( оптимизация кода) |
Просто Лис
|
||||||
10.04.2018, 16:31 | 3 | |||||
Сообщение было отмечено Delictum как решение
Решение
У тебя плохо сделан поиск, как уже заметили.
2
|
1 / 1 / 0
Регистрация: 11.01.2017
Сообщений: 28
|
|
10.04.2018, 16:41 [ТС] | 4 |
Большое спасибо) Проверил: по тестам всё прошло, а теперь буду разбираться в реализации.
0
|
Просто Лис
|
|
10.04.2018, 16:45 | 5 |
Там строится дерево. Корень дерева - это узел с именем 'global', у него нет родителя. Когда создаются узлы, обязательно добавляются родители.
self.d - справочник для быстрого поиска. Можно сказать, что в нём содержатся "указатели" на все-все узлы. В find_var мы сначала пытаемся найти в текущем узле, если не нашли, то двигаемся вверх по дереву (для этого мы храним указатель на родителя).
0
|
10.04.2018, 16:45 | |
10.04.2018, 16:45 | |
Помогаю со студенческими работами здесь
5
Отфильтровать из array только значения, входящие в одну из groups. Оптимизация кода Оптимизация кода Оптимизация кода Оптимизация кода Оптимизация кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |