Google Foobar Challenge Уровень 3

Вызов Google Foobar уровень 3

Изучение двоичных чисел, динамического программирования и цепей Маркова

Фото Раджешвара Бачу на Unsplash

Что такое Фубар-вызов? 🧐

Фубар-вызов – это соревнование по программированию, организованное Google и может быть выполнено на Python или Java. Я выполнил этот вызов с использованием Python. У соревнования есть свой собственный сервер с определенными командами в стиле терминала. Задачи имеют разную сложность и организованы в 5 уровней. Каждый вопрос должен быть решен в определенное время. Больше времени предоставляется на более высоких уровнях.

Чтобы узнать больше о Фубар-вызове, рекомендую прочитать мою предыдущую статью, в которой я даю обзор и разбор проблемы уровня 1.

Соревнование Google Foobar: Уровень 1

Введение в таинственное соревнование по программированию и разбор проблем

towardsdatascience.com

Уровень 3 был тем, где стало серьезно. Уровни 1 и 2 проверяли основы и занимали примерно 15 минут на решение. Уровень 3 проверял навыки решения проблем и требовал часы исследований. В отличие от предыдущих уровней, я не сразу знал, как решить эти проблемы. Мне пришлось несколько раз прочитать вопросы и работать с тестовыми случаями на бумаге. Также, мне пришлось проводить исследования и практиковаться с новыми понятиями.

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

Сначала я немного колебался. Отслеживает ли Google мою историю поиска? Будут ли они считать это читерством? Однако, прогрессируя на уровне, я понял, что эти проблемы, скорее всего, задуманы для того, чтобы заставить вас обратиться к внешним материалам. Я сомневаюсь, что Google ожидает от разработчиков запоминания формул цепей Маркова.

При работе над проблемами, я рекомендую исследовать незнакомые концепции, особенно если ваше решение становится длинным и неструктурированным. Эти проблемы были разработаны для того, чтобы иметь элегантные решения. Если вы не можете придумать элегантный способ решения проблемы, это намек на то, что, скорее всего, есть формула или метод, который упростит ее. Помните, частью…