Задачи и тесты по программированию | proghub
2.42K subscribers
656 photos
16 videos
23 files
916 links
Публикуем задачи и вопросы для подготовки к собесу.

Сотрудничество: @cyberJohnny
Download Telegram
Суперапдейт

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

линк: https://proghub.ru/exercises

ps. если увидите ошибки/неточности - пишите @igorhub, тем кто напишет +20% к баг резисту в коде.
🔥 Собрали новый большой тест на знание Java!

Тест для проверки ваших знаний, их актуальности и глубины понимания языка. Включает в себя 30 вопросов разной сложности - от простых до требующих анализа кода.
🖊 30 вопросов
30 минут на прохождение

Линк: t.iss.one/QuizBot?start=eKmlLvl4

📩 По любым вопросам и предложениям пишите: @igorhub
Фантастическая четверка

У нас на прогхабе 4 задачи на данный момент. Легкая, чуть сложнее и две суперсложные.

Наша любимая из них - Равнины и впадины. Оптимальное решение которой имеет сложность O(cols * rows), где cols - колонки, а rows - ну вы поняли.

Решить: https://proghub.ru/exercises/plains-and-valleys
Что выведет следующая программа?
Есть пакет: import robpike/ivy/value
Хочу заюзать оттуда несколько функций. Как это лучше сделать?
Anonymous Quiz
14%
import . "robpike/ivy/value" Function()
11%
import _ "robpike/ivy/value" _.Function()
61%
import "robpike/ivy/value" value.Function()
13%
import "robpike/ivy/value" value.function()
Что такое «анонимные классы»? Где они применяются?

#вопрос_на_собеседовании
Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.

Анонимные классы имеют несколько ограничений:

- Их использование разрешено только в одном месте программы - месте его создания;
- Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
- Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.

Анонимные классы обычно применяются для:

- Создания объекта функции (function object), например реализация интерфейса Comparator;
- Создания объекта процесса (process object), такого как экземпляры классов Thread, Runnable и подобных;
в статическом методе генерации;
- Инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.
[OOP] Класс в ООП является абстрактным типом данных.
Anonymous Quiz
47%
Не верно
50%
Верно
3%
Не знаю
🚀 Обновились

Выкатили обнову на proghub.ru. В этот раз:
- обновили страницы с вопросами
- добавили возможность обсуждать вопросы
- добавили так же возможность обсуждать вопросы после прохождения теста
А еще нашли баг из-за которого после начала теста, кнопка "пройти" все еще предлагала начать тест. По правилам работы нашего сайта в один момент времени нельзя проходить более одного теста. Апи это гаранировало, а вот фронтенд подкачал. Сейчас пофиксили, теперь если начали тест то кнопка будет ораньжевой с вежливым предложением "Продолжить".

Го тестить на нашем тесте по основам git`а: https://proghub.ru/t/git-knowledge
По рейтингу решений наших задач заметно что интепретируемые языки сильно выигрывают по скорости и памяти.

Можно подумать что это просто более оптимальные решения. Однако, на самом деле мы просто изначально для компилируемых языков считали время и память компиляции+выполнение.

Сегодня пофиксили это для С++ и C#. И скорее всего теперь С++ будет выходить в топ 🙂

А протестить можно на задаче о максимальной прибыли: https://proghub.ru/exercises/max-profit
И вот пример до/после на C++