Ctrl K

Подстановка ключей в скобках

Средняя
Дан шаблон text: строка из строчных латинских букв и цифр, в которой встречаются пары круглых скобок. Внутри каждой пары — непустой ключ, например в hi(name) ключ — name. Скобки не вложены друг в друга. Также дан словарь known: known[i] = [key, value] говорит, что ключу key соответствует значение value. Каждый ключ встречается в known не больше одного раза. Замените каждую пару скобок вместе с ключом на значение этого ключа. Если ключа нет в known, поставьте вместо скобок с ключом один знак ?. Символы вне скобок остаются как есть. Верните получившуюся строку.
Пример 1
text="dear(who)see(day)", known=[["who", "anna"], ["day", "monday"]] → 'dearannaseemonday'

(who) превращается в anna, (day) — в monday.

Пример 2
text="(x)plus(y)is(x)", known=[["x", "two"]] → 'twoplus?istwo'

Ключ x встречается дважды, и оба раза подставляется two. Значение y неизвестно — вместо него ?.

Пример 3
text="nobrackets", known=[] → 'nobrackets'
Ограничения
  • 1 ≤ len(text) ≤ 10⁵
  • 0 ≤ len(known) ≤ 10⁵
  • text состоит из строчных латинских букв, цифр и скобок (, ); скобки образуют невложенные пары с непустым ключом внутри
  • Ключи и значения — от 1 до 10 символов: строчные латинские буквы и цифры
  • Ключи в known не повторяются
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазложить анаграммы по группам СредняяРазбиение на слова из словаря СредняяСлова, равные со сдвигом СредняяПодпоследовательность только одного слова СредняяФайлы с одинаковым содержимым Средняя
загружаем Python…
Вход
text="dear(who)see(day)", known=[["who", "anna"], ["day", "monday"]]
Ожидается
'dearannaseemonday'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 79 тестов на сервере, включая скрытые.