Каждый день я решаю несколько задач по программированию и головоломок из рейтингового режима Codr. Цель - достичь звания гения, попутно объясняю, как их решаю. Для начала вам не нужен опыт программирования, и вы узнаете массу нового и интересного по ходу дела.

Вот интересная задача, она довольно короткая, но обладает некоторыми интересными свойствами. Мы сталкивались с подобным кодом и раньше, много эпизодов назад, но на этот раз нам нужно полностью его проанализировать.

Он начинается с пустого объекта MP и строки T. Цикл for выполняет итерацию по каждому символу в T, условие if проверяет, имеет ли этот символ ключевую запись в объекте MP. Если это не так, он добавляет ключ с 0 в качестве значения. Затем он увеличивает значение этого ключа на единицу.
В конце R = MP[T[4]]
Эта последняя строка получает значение из MP по ключу, который является 4-м индексом T. Это полный рот.

Все, что делает этот код, он подсчитывает количество вхождений символов T. Поскольку все символы в T уникальны, все значения MP будут равны 1. Внутренне MP будет выглядеть следующим образом:

MP = {
  'j': 1,
  'p': 1,
  'n': 1,
  't': 1,
  'm': 1,
  'u': 1
}

Давайте внимательнее посмотрим на последнюю строку:
R = MP[T[4]]
Сначала мы должны проанализировать ее с самого глубокого конца:
T[4] это получает символ с индексом 4 из T, то есть _16 _. < br /> Теперь мы можем заменить: R = MP['m']
Мы уже знаем, что такое MP значения, поэтому R будет 1.

Решая эти задачи, вы становитесь лучшим программистом. Вы узнаете новые и лучшие способы анализа, отладки и улучшения кода. В результате вы станете более продуктивным и ценным в бизнесе. Присоединяйтесь ко мне на Пути к гениальности и улучшите свои навыки программирования на https://nevolin.be/codr/