Подвалили очередное задание. От 45 до 90 минут должно хватить, по их заявлениям.
Задание: разобрать и вычислить постфиксное выражение, которое задается такой грамматикой:
expr = -?[0-9]+
expr = expr expr [+-*/]
Например:
1 1 + 2 3 * —
должно получиться -4
Во первых, грамматика вообще неверна. Во вторых, если считать, что в выражении можно смешивать инфиксную и постфиксную нотацию — я все равно не вижу, каким образом из этого выражения может получиться -4.
Здравствуйте, CodeMonkey, Вы писали:
CM>Подвалили очередное задание. От 45 до 90 минут должно хватить, по их заявлениям. CM>Задание: разобрать и вычислить постфиксное выражение, которое задается такой грамматикой:
CM>expr = -?[0-9]+ CM>expr = expr expr [+-*/]
CM>Например: CM>1 1 + 2 3 * - CM>должно получиться -4
CM>Во первых, грамматика вообще неверна. Во вторых, если считать, что в выражении можно смешивать инфиксную и постфиксную нотацию — я все равно не вижу, каким образом из этого выражения может получиться -4.
CM>В общем, полный
А где тут инфиксная нотация? Это ж обычная полька.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, CodeMonkey, Вы писали:
CM>Во первых, грамматика вообще неверна.
кмк можно решить рекурсивным спуском.
CM>В общем, полный
Тебе питон сказал же, возьми 2-3 месяца и подготовься к собесам.
Здравствуйте, CodeMonkey, Вы писали:
CM>Подвалили очередное задание. От 45 до 90 минут должно хватить, по их заявлениям. CM>Задание: разобрать и вычислить постфиксное выражение, которое задается такой грамматикой:
Что-ж. No hire.
CM>expr = -?[0-9]+ CM>expr = expr expr [+-*/]
CM>Например: CM>1 1 + 2 3 * - CM>должно получиться -4
CM>Во первых, грамматика вообще неверна.
Вроде верна. Что не верно?
CM>Во вторых, если считать, что в выражении можно смешивать инфиксную и постфиксную нотацию — я все равно не вижу, каким образом из этого выражения может получиться -4.
Там нет смешивания. Это стековый вычислитель. Литерал кладётся на стек, операция берёт со стека два значения, вычисляет результат и кладёт его обратно на стек. Вот так, если расставить скобочки:
((1 1 +) (2 3 *)) —
Или в привывчном человекам виде — ((1 + 1) — (2 * 3)) = -4
Здравствуйте, CodeMonkey, Вы писали:
CM>Во первых, грамматика вообще неверна. Во вторых, если считать, что в выражении можно смешивать инфиксную и постфиксную нотацию — я все равно не вижу, каким образом из этого выражения может получиться -4.
Это jобратная польская нотация. Программируется через стек.
Вопрос, конечно, так себе, особенно если время жестко ограничено.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, Kernan, Вы писали:
K>Здравствуйте, CodeMonkey, Вы писали:
CM>>Во первых, грамматика вообще неверна. K>кмк можно решить рекурсивным спуском.
в K&R решение нна одну страницу
и любимые Крейтором задачи по сортировки битов, от туда же
Здравствуйте, CodeMonkey, Вы писали:
CM>Например: CM>1 1 + 2 3 * - CM>должно получиться -4
CM>я все равно не вижу, каким образом из этого выражения может получиться -4.
Здравствуйте, CodeMonkey, Вы писали:
CM>expr = -?[0-9]+ CM>expr = expr expr [+-*/] CM>Например: CM>1 1 + 2 3 * - CM>должно получиться -4 CM>Во первых, грамматика вообще неверна. Во вторых, если считать, что в выражении можно смешивать инфиксную и постфиксную нотацию — я все равно не вижу, каким образом из этого выражения может получиться -4.
Здравствуйте, CodeMonkey, Вы писали:
CM>Выучить все возможные задачи, которые могут взбрести в голову упоротым — это куда больше, чем 2-3 месяца. Это просто всей жизни не хватит.
всё так и есть, но ты сильно не парься, просто продолжай ходить по собеседованиям, в конце концов либо наткнёшься на упоротых, которые зададут вопросы, с известными тебе ответами, либо (если очень повезёт), встретишь работодателя, который умеет (и хочет) нанимать людей. Это по большому счёту лишь вопрос времени, а не скиллов.
Здравствуйте, CodeMonkey, Вы писали:
CM>Выучить все возможные задачи, которые могут взбрести в голову упоротым — это куда больше, чем 2-3 месяца. Это просто всей жизни не хватит.
Ну нет же. Типовых задач не так много. Написание парсера выражений одна из них и типовых её решений тоже не так много. В принципе, все задачи в программировании можно свести к некоему набору давно известных задач если их формализовать. Возьми, как пример, Тёмкину задачку про 10ГБ файл с логами. Конечно, есть феерическое, но его все знают и в нормлаьных конторах их не дают. Я считаю парсер нормальной задачей, хотя тоже вряд ли написал бы, т.к. парсеры писал 10 лет назад и совершенно забыл как это делается.
Тут вопрос не что хочешь ты, а какие установлены правила игры, а они, на данный момент, вот такие вот, сформированные самим программистским комьюнити, кстати. Хочешь чего-то другого? Создавай продукт и собирай свою команду благо есть ICO и краудфандинг, проводи собеседования на которых ты будешь издеваться над олимпиадниками давая им реальные задачи связанные с насущными проблемами, смейся в лицо любителям гномиков на своём собственном собеседовании спрашивая про когерентность кэша и дэдлоках 3 рода, карринге или просто заставляя делать ревью реальных коммитов в репо своего продукта вместе с тобой.
P.S. Просто сидеть на 5 точке и жаловаться на судьбу 5 лет как это делает RF, ну это было такое себе даже в 2к7 когда программисту было проще.
Здравствуйте, Пирожочек, Вы писали:
П>всё так и есть, но ты сильно не парься, просто продолжай ходить по собеседованиям, в конце концов либо наткнёшься на упоротых, которые зададут вопросы, с известными тебе ответами
Здравствуйте, Kernan, Вы писали:
K>Ну нет же. Типовых задач не так много.
Я бы сказал, довольно-таки много. Открываем любой популярный сборник алгоритмов, смотрим число страниц, беремся за лицо.
K>Я считаю парсер нормальной задачей
Парсер — не проблема. Но хитровывернутая нотация, которой в реальности не пользуется никто, кроме может быть десятка-другого фриков на весь мир — это уже хуже.
K>Хочешь чего-то другого? Создавай продукт и собирай свою команду благо есть ICO и краудфандинг
Что-то мне кажется, что это единственный оставшийся вариант, который вообще имеет смысл.
K>проводи собеседования на которых ты будешь издеваться над олимпиадниками давая им реальные задачи связанные с насущными проблемами, смейся в лицо любителям гномиков на своём собственном собеседовании спрашивая про когерентность кэша и дэдлоках 3 рода, карринге или просто заставляя делать ревью реальных коммитов в репо своего продукта вместе с тобой.
Если уж издеваться по серьезному — дать им какой-нибудь кусок кода, написанный любителями решать всё самыми сложными путями, и заставить ловить в нем какой-нибудь недетерминированный баг.
Здравствуйте, CodeMonkey, Вы писали:
CM>Подвалили очередное задание. От 45 до 90 минут должно хватить, по их заявлениям. CM>Задание: разобрать и вычислить постфиксное выражение, которое задается такой грамматикой:
Ну надо же, кто бы мог подумать, на вакансию ( судя по всему ) программиста требуются базовые знания computer science. Невиданная дерзость
Здравствуйте, Voivoid, Вы писали:
V>Ну надо же, кто бы мог подумать, на вакансию ( судя по всему ) программиста требуются базовые знания computer science. Невиданная дерзость
Базовые знания — это, что используется в работе. А вот такая фигня — это то, что очень любят теоретики, но на практике не используется никем, кроме может быть 0.01% программистов (по оптимистичной оценке).
Здравствуйте, CodeMonkey, Вы писали:
V>>Ну надо же, кто бы мог подумать, на вакансию ( судя по всему ) программиста требуются базовые знания computer science. Невиданная дерзость
CM>Базовые знания — это, что используется в работе. А вот такая фигня — это то, что очень любят теоретики, но на практике не используется никем, кроме может быть 0.01% программистов (по оптимистичной оценке).
А у каждого разная работа. Поэтому такие рассуждения субъективны. Так что тут ключевое слово "computer science". Такиеи задачи решают студенты 1-2 курсов соответствующей специальности.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, CodeMonkey, Вы писали:
CM>Подвалили очередное задание. От 45 до 90 минут должно хватить, по их заявлениям. CM>Задание: разобрать и вычислить постфиксное выражение, которое задается такой грамматикой:
CM>expr = -?[0-9]+ CM>expr = expr expr [+-*/]
CM>Например: CM>1 1 + 2 3 * - CM>должно получиться -4
CM>Во первых, грамматика вообще неверна. Во вторых, если считать, что в выражении можно смешивать инфиксную и постфиксную нотацию — я все равно не вижу, каким образом из этого выражения может получиться -4.
CM>В общем, полный
Здравствуйте, ·, Вы писали:
·>А у каждого разная работа. Поэтому такие рассуждения субъективны.
Совершенно объективны. Расскажи мне, для какой работы так позарез нужна "обратная польская нотация", что ее нужно помнить наизусть. Не считая работы препода в ВУЗе, естественно.
·>Так что тут ключевое слово "computer science". Такиеи задачи решают студенты 1-2 курсов соответствующей специальности.
А чего не решить, если им вчера про это лекцию рассказывали Скорее всего, и я решал, только давно позабыл по причине полной ненужности.