Программирование, Путешествия, Покер

Последний пост:1 апреля
810
Статистика
Всего постов
3225
845,352 просмотров
Новых постов
+0
1 в день
Лучшие посты автора
27.09.2022 +233
21.12.2019 +196
22.02.2023 +169
04.01.2023 +166
13.07.2019 +154
Лучшие посты читателей
inpace +111
justpus7 +98
vsobakekot +88
Gtrdy +85
s4ekotilla +78
Самые активные читатели
1 2 22 23 24 25 44 162
  • Вчера вечером проходил кодинг-собеседование онлайн. Заключалось оно в решении 4 задач на платформе hackerrank.
    Первый раз пробовал такое, в принципе понравилось. Уж куда удобнее, чем тащиться в офис компании и полтора часа сидеть с ноутбуком (привет, "одноклассники"). Еще из плюсов - есть тесты, можно сразу посмотреть, работает ли решение. Если тест валится, то входные данные и ответ скрываются, но в случае возникновения эксепшена (ошибки) указывается, в какой строке она случилась.
    На выполнение всех задач отводилось 1,5 часа. Так как я там ставил галочку о нераспространении текста задач, привожу их в немного измененном/обобщенном/упрощенном виде, который, по идее, не меняет сути задачи. Курсивом выделил свои комментарии по задаче. Оценки О-большого могут быть некорректными :)

    1. Найти количество "кружочков" в числе (неотрицательное, инт). Типа 88 -> 4 кружочка, 1111 -> 0 и т.д.
    Я подобную задачу когда-то давно уже встречал, поэтому идею решения не пришлось искать с нуля. По идее, работает за О(n), где n это количество цифр в исходном числе

    2. Есть массив строк, каждая из которых содержит только латинские буквы (a-z A-Z). Количество букв > 1 и порядок произвольный. Каждая буква в строке может встречаться от 0 до N раз. Нужно найти количество букв, которые встречаются в каждой строке.
    Такое прежде не встречал, пришлось думать :) В итоге написал штуку, которая работает за О(n * l), где n - размер массива, а l - средняя длина строки в массиве. Дополнительной памяти нужно О(1)

    3. Дан массив интов размером > 1. Надо найти 2 индекса k и j такие, что k < j, a[j] - a[k] > 0 и a[j] - a[k] максимально для всего массива. Если таких индексов нет, то вернуть -1 для каждого.
    Тоже пришлось изобретать колесо и немного воспользоваться помощью гугла. Не уверен, что решил оптимально. По идее, у меня работает за О(n) и требует O(n) памяти. Отмечу, что лобовой способ работает за О(n^2) и тесты валятся по таймауту (долго работает, короче говоря)

    4. Есть собака, которая стоит в некоторой исходной клетке и выполняет команды. Команда = 1 буква, которая означает, куда надо двигаться собаке (F - прямо, L - влево, R - направо, B - назад). Любое перемещение = переход на соседнюю клетку в заданном направлении.
    На вход дается строка команд размером > 1.
    Эта строка будет повторяться бесконечное количество раз. Нужно определить, будет ли собака бесконечно удаляться от начальной точки или нет (в виде строки YES или NO).

    На эту задачу, к сожалению, времени не хватило. Сегодня с утра в автобусе решил ее и написал HRу письмо с просьбой сказать, правильно ли я сделал или нет, добавив идею решения и ссылку на код. Будем надеяться на позитивный ответ.

    Возможно, на самом хакерранке эти задачи имеются и там можно их порешать.
    205/1049
    Ответить Цитировать
    5
  • puzzlo, ты с таким напором пихаешь свой 1С и говоришь, что у ТСа плохие аргументы против. При этом ты приводишь в пример Kotlin. Да он круче, чем Java, потому что он новый + ща Google его активно продвигает. Причем перейти с Java на Kotlin, не сложно. Но причем здесь 1C?

    Кому он вообще нужен? Я проф. программист и не знаю ни одного нормального программиста который умеет в 1С.

    Это как говорить сейчас, что Delphi - это круто.
    А на MS Word вообще можно все что угодно сделать.
    А зачем нам Qt, когда MFC - просто космос?

    Прошу прощения за резкость - бомбит уже. Причем я не джавист, а плюсовик. Но уважаю джаву, потому что они во многом схожи, но блин 1С - серьезно? Моя жопа в космос от этого улетела.

    Может быть если бы поменять 1С на Python - тогда бы появился смысл в твоих словах.
    1/129
    Ответить Цитировать
    3
  • strkk, а над какими проектами фирма работает что проводит такие тесты?
    3/27
    Ответить Цитировать
    0
  • rusJA, конкретно эта компания пилит какую-то систему, связанную с обработкой данных в биологической сфере. Что конкретно они делают - напишу после собеседования (если позовут пообщаться)
    206/1049
    Ответить Цитировать
    0
  • Цитата (strkk @ 15.6.2017)
    Эта строка будет повторяться бесконечное количество раз. Нужно определить, будет ли собака бесконечно удаляться от начальной точки или нет (в виде строки YES или NO).

    по идее, если в конце строки собака не вернется в начало, то если бесконечно раз повторять ее, собака удалится бесконечно. надо просто посчитать сумму F-B=0 && L-R=0
    3/27
    Ответить Цитировать
    3
  • Довольно оперативно ответили. Цитата менеджера.
    Цитата
    Идея на последнюю задачу нормальная, но он очень медленно решал задачи и код у него неоптимальный. У него самое неоптимальное решение задачи про максимальную разницу из всех работающих решений, которые я видел. Очень громоздкий код


    По моему впечатлению, они ищут задрота сайта hackerrank или человека, который эти задачи уже решал.

    Про "самое неоптимальное решение задачи" и "Очень громоздкий код" - это видимо про тот кусок, который я нагуглил. Тут я и сам знаю что убого было, но времени не хватило.
    Цитата (don_eric @ 15.6.2017)
    по идее, если в конце строки собака не вернется в начало, то если бесконечно раз повторять ее, собака удалится бесконечно.

    Неа, это неверно.
    207/1049
    Ответить Цитировать
    0
  • Цитата (strkk @ 15.6.2017)
    Неа, это неверно.

    хм, почему? можно по индукции доказать
    4/27
    Ответить Цитировать
    0
  • Цитата (s4ekotilla @ 15.6.2017)
    puzzlo, ты с таким напором пихаешь свой 1С и говоришь, что у ТСа плохие аргументы против. При этом ты приводишь в пример Kotlin. Да он круче, чем Java, потому что он новый + ща Google его активно продвигает. Причем перейти с Java на Kotlin, не сложно. Но причем здесь 1C?

    Кому он вообще нужен? Я проф. программист и не знаю ни одного нормального программиста который умеет в 1С.


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

    Изначальный посыл дискуссии был в том, что если нет опыта в программировании, почему не посмотреть в сторону 1С. И посыл вполне резонный - откройте хэдхантер и сравните кол-во вакансий по 1С, Java, C#, PHP и проч. Плюс порог вхождения довольно низок, человек с головой за полгода сможет освоиться.
    Другое дело что да, это только Россия, и работа скажем так специфическая, нужно быть готовым окунаться в бухгалтерию и прочую муть.
    По ЗП 120-150 в мск получает средний спец.
    1/3
    Ответить Цитировать
    0
  • С одинэской главная проблема - это что потом, потолок можно добить достаточно быстро, а полученный опыт в других сферах применим через пень-колоду (или совсем не применим).

    Ну и синтаксис - боль. Изначально предполагалось в воображении создателей, что бухгалтера сами себе будут корячить какие-то автоматизации, поэтому и пошли по пути русского языка. Но это как с VBA - оно вроде бы есть, но нужен все равно бекграунд разработчика.
    4/6
    Ответить Цитировать
    0
  • Partisan, посмотрел у себя в РБ, 1700 вакансий с тегом 1С, по Java около 300. Для примера взял еще с тегом Excel - целых 1100 вакансий. Ну все расходимся, джависты - днище никому не нужное.
    2/129
    Ответить Цитировать
    0
  • Цитата (s4ekotilla @ 15.6.2017)
    1700 вакансий с тегом 1С

    Не, ну это совсем несерьезно. Тег 1С навешают на любую вакансию бухгалтера, менеджера по продажам и т.п.

    Ну и да, я согласен что выбирать программирование на 1С с нуля (без учета других факторов) это странно.

    Цитата (don_eric @ 15.6.2017)
    хм, почему? можно по индукции доказать

    Вспомню времена модераторства на braingames: "Ответ на Ваш вопрос будет подсказкой"
    Но вообще, простейший контрпример опровергает это.
    208/1049
    Ответить Цитировать
    0
  • Приведи, плз, т.к. мне эта логика тоже кажется безупречной. Ты уверен, что в тексте задачи не ошибся?
    11/38
    Ответить Цитировать
    0
  • просто у собаки есть направление, куда она смотрит, это не точка на экране, поэтому обе части (про сумму и про возвращение в конце строки -- не годятся)
    1/2
    Ответить Цитировать
    4
  • Вот чёрт
    Тогда собака удаляется бесконечно только тогда, когда сумма не равна нулю И собака смотрит туда же, куда вначале.
    12/38
    Ответить Цитировать
    1
  • Цитата (БоевойСлон @ 15.6.2017)
    сумма не равна нулю И собака смотрит туда же, куда вначале.

    RRRR
    2/2
    Ответить Цитировать
    0
  • Я имел в виду "когда собака не вернулась в начальную точку", конечно. Сумма - это типа общая "сумма движения".
    13/38
    Ответить Цитировать
    0
  • Цитата (s4ekotilla @ 15.6.2017)
    Я проф. программист...
    Причем я не джавист, а плюсовик.

    Ты работаешь на С++?
    Расскажи, где он сейчас обычно используется? Почему в этих областях/фирмах выбирают именно С++, а не ту же Джаву?
    14/38
    Ответить Цитировать
    0
  • БоевойСлон, в данный момент я вообще работаю на чистом C. А используем мы его потому, что работаем над встроенными системами (embedded), а там альтернатив нету. Есть всякие поползновения других языков, но зачастую там такие требования, что кроме как на С и писать то не на чем.

    А насчет C++ vs Java - тут не место для холиваров на эту тему. Я допустим начинал с C/C++, поэтому мне они больше нравятся, потому что я их больше знаю. Я не знаю, что можно сделать на Java, чего я не могу на C++, и наоборот. С другой стороны я знаю, что в C++ есть столько ловушек, что лучше конечно брать новичка по Java, в которой такие места обходят за километр.

    Ну помоему классические места в которых прогают на C++, это всякие высоконагруженные системы, игровые движки (насколько знаю в Wargaming нужны плюсовики, и Unreal Engine его использует), и системные всякие штуки. Ну я еще очень сильно когда-то на Qt подсел.

    Да и вообще они похожи. Я читал Шилдта по Java - первые 150-200 страниц, как будто о C++ с мизерными отклонениями.

    Еще я ходил в EPAM на Linux Development Courses. Там были Python/Linux/C/GNUTooolchains. И мне впринципе вот это вот все нравится, поэтому и устроился в фирму, в которой этим занимаются (программируем телеприставки разных сортов).

    П.С. Я бы сейчас за Python топил.
    3/129
    Ответить Цитировать
    1
  • С++ обычно используют в системах, где нужна высокая производительность, типа image processing, или мало ресурсов, чтоб запускать виртуальную машину, например, в контроллерах.

    я вообще предпочитаю C# джаве, это вечный холивор. Но с развитием .Net Сore у него потенциал сильно вырастет
    5/27
    Ответить Цитировать
    1
  • Да, давайте воздерживаться от языковых холиваров. Куда лучше будет поделиться тем, почему вы выбрали язык Х, сколько времени заняло его освоение и т.п. вещи, а затем собрать плюсики к посту :)
    Кстати говоря, раз уж заговорили про языки - есть ли люди, которые пишут на Scala?
    Если да, то буду рад послушать про ваш опыт освоения языка и ссылки на любые полезные материалы.

    Сам серьезно заинтересовался этой темой и планирую попробовать вакансии java/scala. На удивление, вариантов хватает.

    Цитата (s4ekotilla @ 15.6.2017)
    это всякие высоконагруженные системы

    Джава для них тоже вполне себе рабочий вариант. Взять тех же одноклассников, которые написаны на джаве.
    209/1049
    Ответить Цитировать
    1
1 2 22 23 24 25 44 162
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.