Сперва может показаться, что это одна из тех головоломок, в которых предполагается оценить какое-то абсурдное число. Вероятно, из школьного курса вы помните, что если две линии, лежащие в одной плоскости, не параллельны, то они пересекаются. Таким образом, чтобы проверить, пересекаются ли две линии, достаточно проверить, различаются ли их наклоны и не совпадают ли их сдвиги. Реализуйте функцию извлечения квадратного корня, не пользуясь встроенными в язык средствами нахождения корня и возведения в степень. Предположим, компания, в которой вы работаете, разрабатывает электронный календарь.
GeeksforGeeks содержит одну из лучших подборок статей, объяснений и примеров кода для алгоритмов и структур данных. Посмотрите, как один сложный вопрос разбивается на несколько более простых с поэтапным объяснением решений при помощи примеров кода на разных языках. Прежде чем посмотреть ответ к задаче, вы можете потренироваться в онлайн-редакторе. Если вы решили разобраться в вопросах алгоритмов, этот сайт – лучшее решение. На этой платформе пользователям предлагают задания по написанию кода на разных языках программирования и уровнях трудности. Здесь найдутся задания для пользователей с любым уровнем знаний.
Конечно, с точки зрения физики задача не совсем корректна и по другим причинам, но можно попробовать решить ее эмпирически. Если вы придумали решение, то написать и проверить его вы можете здесь, на codeforces. В этой задаче вам необходимо реализовать функцию, которая бы проверяла число на четность, используя только битовые операции AND, OR, NOT. Представьте себе замкнутую по окружности железную дорогу. По ней едет поезд, последний вагон которого скреплён с первым так, что внутри можно свободно перемещаться между вагонами. Вы оказались в одном случайном вагоне и ваша задача — подсчитать их общее количество.
Под корректными комбинациями пар будем понимать правильно открытые и закрытые скобки. На вход подаётся число пар скобок, на выходе должны быть все возможные их комбинации в виде набора строк. Это классическая задача с долгой историей, которую обсуждал в своё время еще Исаак Ньютон. Когда-то она использовалась и на IT-собеседованиях в Google (сейчас — нет). Тем не менее предлагаем вам порассуждать над решением.
Вы можете писать код в онлайн-редакторе и просматривать коллекцию упражнений, разделенных по категориям с указанием вашего уровня (пример). Здесь большое сообщество программистов, участвующих в обсуждении на форуме, написании учебных пособий и принимающих участие в соревнованиях по кодингу. CodeFights содержит задания для решения в онлайн-редакторе и форум для обсуждения. В качестве целей можно поставить изучение новых концепций программирования или подготовку к собеседованию.
На LeetCode вы не сможете видеть решениядругих участников, зато сможетеотслеживать статистику собственныхрешений. Например, можно увидеть,насколько быстр ваш код по сравнению скодом других пользователей. Большинство приведенных ресурсов обеспечивают возможность выполнения заданий и тестирования результатов в онлайн-режиме. Многие задания носят игровую форму, что делает сложный процесс программирования более интересным и мотивирует к занятиям. На большинстве приведенных сервисов можно зарегистрироваться или упростить регистрацию с помощью аккаунтов в социальных сетях или на Github.
Однако, пользоваться механизмом продолжений в исходном виде по существу не сильно привлекательнее, чем строить программу на голых go to. Поэтому на базе продолжений обычно строятся более приближённые к практическим задачам механизмы, одним из которых является недетерминированная специальная форма amb. CodeHS предлагает задания для разных языков, а пользователи получают баллы за правильные решения. Ещё одно преимущество — возможность писать код прямо в браузере.
Выполнить реверс одномерного массива целых чисел без использования дополнительного массива. Найти минимальное, максимальное и среднее значение в массиве целых чисел. Решая эти задачи, вы научитесь управлять большим количеством информации с помощью массивов и списков, что очень важно в программировании. Узнав, как работают циклы на примере подсчета чисел, вы сможете применять их для решения более сложных задач в программировании. Решая такие задачи, вы быстро научитесь использовать if/else и другие правила для решения логических задач. Это хорошая основа для тех, кто учится программированию.
Напишите код, определяющий количество способов представления n центов. Опишите, как можно использовать один одномерный массив для реализации трех стеков. Предложите алгоритм, который обнуляет столбец N и строку M матрицы, если элемент в ячейке (N, M) нулевой. Конечно же, нужно минимизировать затраты памяти и время работы.
Подборка задач для программистов, использующих Prolog. Informatics.mccme.ru — платформа с множеством теоретических материалов и задач по соответствующим темам. Также содержит большую базу задач с прошедших олимпиад школьников.
Полиморфным считаем класс, в котором есть хотя бы одна виртуальная функция. Предложите алгоритм поиска в ней произвольного элемента. Под отсортированной матрицей будем понимать такую матрицу, строки и столбцы которой отсортированы (см. пример). Что означает ключевое слово volatile и в каких ситуация оно может быть применено? Если даже помните формальное значение, попробуйте привести пример ситуации, где volatile на самом деле будет полезно. Это классическая google-задачка, хороший разбор которой в рунете не так-то просто найти.
Многим понравилось отгадывать загадку программиста о том, который сейчас час, и его попросили загадать ещё одну. После выполнения тестового задания просите обратную связь. Так вы поймете свои недочеты и сможете исправить их, чтобы не допустить в следующий раз.
IT курсы онлайн от лучших специалистов в своей отросли https://deveducation.com/. Начни карьеру в топовых нишах!
1 de marzo de 2024
Publicado en: IT Образование