Чтобы начать это задание, я хотел бы написать алгоритмы для Hopfield Net или Hanoi Tower, и я напишу, только немного позже. Прямо сейчас я бэкэнд-разработчик, стремящийся стать разработчиком полного стека, работающий с Django, React JS и другими технологиями на данный момент. У меня новая работа, и я еще не освоил мир Python / Javascript. Подводя итог, мне нужно поработать над своими навыками программиста.
Помня об этом, я решил потратить последний месяц на отработку навыков программирования на веб-сайте CodeFights. CodeFights - отличный инструмент для обучения и предлагает различные виды практики, такие как:
- Практика собеседования: упрощает подготовку к собеседованию по техническим вопросам.
- Корпоративный бот: ваш шанс бросить вызов роботам-программистам, обученным инженерами ведущих технологических компаний.
- Аркада: представляет собой серию заданий для открытия новых уровней и локаций.
- Лицом к лицу. Сражение с друзьями и незнакомцами.
- Турниры. Соревнования по программированию в реальном времени (лучший вариант).
Сначала я играл в аркадном режиме, признаюсь, я чувствовал себя очень умным, но это чувство уменьшалось, когда становилось все труднее, позвольте мне показать вам:
- Для данного года верните столетие, в котором он находится. Первый век охватывает период с 1 года до 100 года включительно, второй - от 101 года до 200 года включительно и т. Д.
My Result: def centuryFromYear(year): if year % 100 == 0: return year/100 else: return int(year/100) + 1
Кажется, это просто? Но немного поднять уровень
2. Для десятичного целого числа n
найдите такое целое число k ≥ 2
, чтобы представление n
в базе k
имело максимально возможное количество нулей. Если ответов несколько, выведите самый маленький.
- Для
n = 9
вывод должен бытьmaxZeros(n) = 2
.9 = 10012 = 1003 = 214...
Если вы попробуете все другие основы, вы увидите, что максимально возможное количество нулей в этих представлениях равно2
, поэтому ответk = 2
.
Not My Result def maxZeros(n): maxZ = -1 maxB = -1 for base in range(2, n+1): num = n tot = 0 while num > 0: if num % base == 0: tot += 1 num //= base if tot > maxZ: maxZ = tot maxB = base return maxB
Если вы думаете, что эти задачи были легкими, представьте, что у вас есть 10 минут, чтобы решить 3 задачи с той же степенью сложности, и не забудьте о соревновании 4 или 5 других разработчиков.
Сначала вы не выполните 3 задачи, вы прогрессируете постепенно, и когда вы это видите, цель состоит не просто в том, чтобы решить проблемы, а в том, чтобы решить их наилучшим образом. И это когда вы исследуете и проверяете, как ваши оппоненты справляются с задачей, и просматриваете документацию, форумы и т. Д.
Вот и все, присоединяйтесь ко мне на CodeFights!