Чтобы подготовиться к оценке LS216, я составил список практических задач, которые я изучу и решу. В этой статье я хотел бы поделиться этим списком, чтобы другие студенты, которые ищут проблемы для решения, могли его использовать. Я также расскажу о своем опыте работы с живым кодированием.
Задачи из этого списка различаются и не всегда могут быть теми задачами, которые будут заданы на экзамене. Тем не менее, я обнаружил, что они хороши для улучшения моих навыков решения проблем. 79 задач (если я правильно посчитал) от edabit. Я работал над всеми из них и решил все, кроме нескольких из них. Некоторые были или стали со временем действительно легкими. Другие оказались более сложными. Я старался не слишком расстраиваться из-за самых сложных проблем, так как чувствовал, что оценочный вопрос не будет такого же уровня сложности.
Вдобавок к их решению я трачу значительное количество времени на отработку алгоритмов для JavaScript. Я наметил множество задач по кодированию, которые, по моему мнению, могли бы иметь отношение к задаче по кодированию. Затем я практиковал их в изоляции, чтобы стать очень опытным на случай, если такая задача понадобится. Это включало несколько алгоритмов для вложенных итераций и манипулирования массивами, которые я практиковал для оценки RB109. Я также сравнил Ruby и JavaScript и удостоверился, что выполняю задачи, которые нужно выполнять вручную в JavaScript, но в Ruby есть встроенный метод. Таким образом, я мог реализовать такое решение с высокой степенью уверенности.
Я подготовился к задаче кодирования LS216 больше, чем обычно. Я хотел доказать, что мои успехи в кодировании RB109 не были случайностью. Есть что-то такое, что заставляет меня чувствовать себя напуганным. Поэтому я тщательно подготовился. В целом между содержанием LS для курса, списком задач здесь и моим независимым изучением алгоритмов я насчитал почти 250 часов.
Подготовка оказалась адекватной. Когда я взял оценку и прочитал описание проблемы, у меня сразу возникло ощущение, что я могу ее решить. Я также понял, какие алгоритмы я могу использовать для решения подзадач основной задачи. Я старался не торопиться, так как ошибки обходятся дорого. Я не торопился, чтобы полностью понять проблему и разработать тестовые примеры. В целом, по моим оценкам, я потратил около 30 минут на понимание проблемы, разработку тестов и написание алгоритма. Затем я смог закодировать решение примерно за 10 минут. В целом, я все время чувствовал себя под контролем и смог решить проблему. Мне пришлось рассмотреть и исправить пограничный случай прямо в конце интервью, что показывает, что в следующий раз я могу быть еще более тщательным. Всегда есть возможности для улучшения.
Список проблем
Проблемы со стилем объекта
Разгруппировать данные в объекте
Объединение двух объектов в один, сумма подобных значений
Площадь перекрывающихся прямоугольников
Разбиение объектов внутри массива
Стандартный рейтинг соревнований
Упростить объект двумя свойствами
Скидка 25% на самый дорогой товар
Подсчитайте, сколько раз повторяется элемент
Проверь, проходит ли кирпич через отверстие
"Торговый автомат"
Проблемы со стилем массива
Все пары с суммой для таргетинга
Мутации только от нуля до конца
Расстояние до ближайшей гласной
Максимальное расстояние до ближайшего занятого слота
Разбиение на куски максимальной суммы n
Открыть все ячейки, если возможно
Разбить список на группы последовательных номеров
Глубинное вложение плоского массива
Максимальная и минимальная тройки продуктов
По возрастанию последовательных чисел
Движущиеся частицы поглощают друг друга после столкновения
Самая длинная подстрока с неповторяющимися символами
Группы подстрочных согласных гласных