Vlad
да, буду пробовать
Vlad
обезательно
Null
Happy Monday! 👋 Продолжаем решать задачи на стеки, на этой неделе — вычисляем выражения в обратной польской нотации. https://www.youtube.com/watch?v=AtVhd6ISayc
Sergei
Сейчас попробую решить
Roman
А кто знает, что дают фронту и фуллстеку на onsite в компаниях аля ФААНГ только поменьше, типа Bolt.eu?
Ilia
Bolt это которая в Эстонии?
Roman
Да
Ilia
У нас @Semper_viventem если правильно помню в неё месяц назад переехал
Roman
У нас @Semper_viventem если правильно помню в неё месяц назад переехал
Ага, он меня зареферил, сегодня вот проходил первую секцию. Ответ еще не дали. Рекрутер сказал, что можно выбрать на фуллстэка, либо на бэка, взамисимости от этого будут разные интервью во второй части. Первая секция была литкод изи-мед.
Konstantin
Привет! Да, я недавно в Bolt перешел на андроид-разработчика. Наверное прям условие задачи сказать не могу. Но она была среднего уровня leetcode, в духе валидации выраженя со скобками
Konstantin
Что касается алгоритмической секции. Другие секции были платформо-зависимыми
Alex
А кто знает, что дают фронту и фуллстеку на onsite в компаниях аля ФААНГ только поменьше, типа Bolt.eu?
Не конкретно про фронта/фулстека, но у них был хайринг ивент в мск, там было вот такое, может будет полезно: https://boltchampionship.com/analysis
Roman
Да, вот меня интересует вторая часть. Я так понимаю фронт будет про DOM и т.д.? Или же про систем-дизайн фронта, типа задизайните typeahead компонент
Viktor
Для самых маленьких, а задачка медиум
Там на стеки не так уж и много задач, поэтому будут и изи и медиумы. Если они относительно простые, потому что бывает так что просто много деталей напихивают лишних и из-за этого сложность повышается.
Sergei
Но как-то медленно вышло и по памяти тоже грустно, пойду смотреть видос)
Sergei
За 40 минут уложился, как в своём посте, хотя код писал непосредственно минут 10
Sergei
«всегда валидное - это значит никакой странной хери не вычислится» 😂
Sergei
да, eval хорошая идея, но ненадежная.
Ещё обратная связь: Какой навык хочется прокачать - это глядя на условие и примеры, видеть, что это про стэк. Как в английских временах clue words. Или это только с опытом? Если бы я не знал, что на стек, я бы не решил сходу, ну во время точно и изобретал бы велосипеды.
Viktor
а так вообще да, просто нарешавшись задач.
Viktor
и прикидывая какие подходят решения.
Viktor
Парсинг это обычно стек, потому что когда разбираешь одну сущность можешь наткнуться на вложенную, значит рекурсия, а значит и стек.
Viktor
еще, наверное, помогает разбор примера тщательный. вот в самом начале я говорю, мол, нужно положить назад в массив вычисленное выражение, чтобы его потом можно использовать. в принципе, можно и без стека, а реально дербанить этот массив и правильно двигать указатель откуда продолжать разбор.
Viktor
но это будет адский код.
Viktor
от которого будут вытекать глаза.
Sergei
Чуть в сторону: смотрел тед ток классный, где чел рассказывал про исследование, где одну группу учили по темам (тему прошли - задачи порешали и к следующей), другую вразнобой. Первой было легче учится, второй сложнее, но когда пришло время теста, вторая группа просто порвала первую по результатам.
Sergei
от которого будут вытекать глаза.
Это да, а все же к вопросу, на интервью лучше решать рекурсивно или избегать? Или спросить как изволит господин интервьюер?
Ilia
меня в очередной раз бомбануло от жс
Ilia
Math.floor(-6/132) = -1. но как?
Sergei
да, это хороший фидбек. подумаю каким образом правильно коммуницировать условие, с каким-нибудь наводящими на мысль подсказками, например.
Ещё фидбек про порядок важен для деления и вычитания, ты сходу это увидел и ему рассказал, а я это обнаружил, когда проходил по уже написанному коду с примером)
Ilia
Math.floor(-6/132) = -1. но как?
открытие года для меня. floor округляет вниз, а не отсекает дробную часть
Sergei
Math.floor(-6/132) = -1. но как?
Используй math.trunc в 2021 :)
Ilia
Используй math.trunc в 2021 :)
открытие года номер 3 в жс для меня
Ilia
спасибо, не знал даже про нее ))
Sergei
Это как раз твои assumptions
Sergei
Я написал Number.isNumber сначала
Sergei
Такого метода вообще нет)
Sergei
Пишу просто как на доске сначала
Sergei
Озвучиваю что хочу получить
Viktor
Это да, а все же к вопросу, на интервью лучше решать рекурсивно или избегать? Или спросить как изволит господин интервьюер?
мне кажется, что не важно — ну ты просто заранее скажи как ты будешь решать. я бы не стал здесь рекурсивно мудрить когда можно явный стек сделать. но иногда рекурсивно короче выходит.
Sergei
Интервьюер бы понял что идея правильная, а метод нет)
Ilia
я от обратно, через NaN решал
Ilia
если запарсилось в нан, то значит это операция )
Sergei
Ну я так и решил в итоге, метода же нет такого)
Sergei
Просто isNaN(“10px”) -> true
Ilia
Просто isNaN(“10px”) -> true
isNaN(parseInt(tokens[i], 10))
Ilia
так и живём 😃
радует, что я не один такой. из решений на литкоде 😄 newNum = temp > 0 ? Math.floor(temp) : Math.ceil(temp)
Viktor
Я написал Number.isNumber сначала
А точно это нужно когда известно заранее, что там символы от 0 до 9?
Viktor
в общем случае все сложно, но в конкретном кажется, что нет.
Sergei
А ты алгоритм написал что если число то одно, если оператор то другое, а когда уже начал с пункта 2.2, а else 2.1
Sergei
А я как алгоритм написал так и закодил
Ilia
isNaN(parseInt(tokens[i], 10))
даже еще лучше же isNaN(+tokens[i]) вечно забываю про унарный плюс )
Viktor
А я как алгоритм написал так и закодил
ага, понял. ну можно было проверять вот так '0' <= token && token <= '9'
Viktor
нет ж другого варианта.
Sergei
А так да, лишнее, room for refactoring
Sergei
Свитч не лучше макарон из else if?
Sergei
Умпутун вообще else не использует) все ранними выходами
Sergei
Хотя для обучения лишнюю сущность, плюс не каждый ещё на доске напишет свитч правильно)
Sergei
Тоже попал в 63 вместо 9, когда с евал переписал)
Sergei
даже еще лучше же isNaN(+tokens[i]) вечно забываю про унарный плюс )
Как Виктор в видео предпочитаю для читаемости явно писать через Number
Ilia
я только в литкоде позволяю себе писать такое. самое удивительно что такой синтаксис работает быстрее
Ilia
в разработке у меня в проекте я всем запрещаю писать на жс, только явные типы и строгие булевские условия )
Sergei
я только в литкоде позволяю себе писать такое. самое удивительно что такой синтаксис работает быстрее
Мне кажется, плохая привычка может выработаться, потом придёшь в фаанг на интервью и так же напишешь)
Ilia
Мне кажется, плохая привычка может выработаться, потом придёшь в фаанг на интервью и так же напишешь)
Я 99% времени пишу явные проверки на undefined, числа, длину массивов и прочее. Думаю, что не выработается )
Viktor
на тайпскрипте все пишут?
Ilia
на тайпскрипте все пишут?
Да, все проекты на тс, конкретно на моем такие жёсткие правила )
Viktor
Viktor
Чтиво подъехало
Viktor
Давно любопытно было. Кто читал?
Aleksandr
Она Java based вроде или дженерал?
Viktor
Она Java based вроде или дженерал?
Да там вообще псеводокод. Но есть отдельная глава про магию плюсов, которую можно пропустить.