powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как решить задачу?
25 сообщений из 42, страница 1 из 2
Как решить задачу?
    #39108195
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
String s="2-(5-(7-9))"
Необходимо получить арифметический результат
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108201
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108203
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108211
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не используя либы, это вопрос с собеседования
Решение должно быть в лоб
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108225
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTНе используя либы, это вопрос с собеседования
Решение должно быть в лоб
Даже лень было посмотреть что по ссылкам?
https://docs.oracle.com/javase/8/docs/api/javax/script/ScriptEngine.html
Since:
1.6
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108228
wst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прямо на собеседовании надо было сидеть городить рекурсивный парсер (см. recursive descent parser) или сортировочную станцию (см. shunting-yard algorithm)??? Больно жестоко, как по мне. То есть ничего сложного (rdp для чисел, скобок и вычитания можно уместить в 20-30 значимых строчек), но только когда никто и ничто не отвлекает.
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108300
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wstПрямо на собеседовании надо было сидеть городить рекурсивный парсер (см. recursive descent parser) или сортировочную станцию (см. shunting-yard algorithm)??? Больно жестоко, как по мне. То есть ничего сложного (rdp для чисел, скобок и вычитания можно уместить в 20-30 значимых строчек), но только когда никто и ничто не отвлекает.
Делов-то:
http://cogitolearning.co.uk/?p=565
в дерево разобрать и обойти.
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108374
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108420
wst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczДелов-то
Это когда в привычной обстановке можно с ходу расписать, что-то вроде expr0: number | '(' expr1 ')'; expr1: expr0 (('+'|'-') expr0)*; и свести все к 2 функциям для вычисления expr-ов и одной для нарезания строки на элементы. А вот после часа дороги и часа отвлеченной болтовни можно и более простые вещи перепутать/позабыть.
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108425
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTРешение должно быть в лоб
возможно, это вопрос-проверка на знание о том, что существуют алгоритмы типа https://ru.wikipedia.org/wiki/Алгоритм_сортировочной_станции
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108458
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108460
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108724
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108725
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы.
Не смогла я решить эту задачку на собеседовании, в итоге меня определили в джуниоры и отправили домой )
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108773
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuIT в итоге меня определили в джуниоры и отправили домой

Может оно и к лучшему. Задача была идиотская. Значит, тот кто её задал - идиот и набирает на работу идиотов. И кто его держит на работе идиот. То есть, вся организация идиотская.

Впрочем, есть простое решение, требующее JDK 8: использование встроенного в JDK интерпретатора JavaScript, называемого Nashorn. На версию JDK условия не было? Тогда сгодилось бы. Для прежних версий JDK пришлось бы использовать дополнительную библиотеку с интерпретатором скриптового языка (для JavaScript - например, Rhino), также синтаксис выражения соответствует Groovy.
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108782
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MВпрочем, есть простое решение, требующее JDK 8:
Since: 1.6 в JavaDoc ни на что не намекает?
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108810
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MJuIT в итоге меня определили в джуниоры и отправили домой

Может оно и к лучшему. Задача была идиотская. Значит, тот кто её задал - идиот и набирает на работу идиотов. И кто его держит на работе идиот. То есть, вся организация идиотская.

Впрочем, есть простое решение, требующее JDK 8: использование встроенного в JDK интерпретатора JavaScript, называемого Nashorn. На версию JDK условия не было? Тогда сгодилось бы. Для прежних версий JDK пришлось бы использовать дополнительную библиотеку с интерпретатором скриптового языка (для JavaScript - например, Rhino), также синтаксис выражения соответствует Groovy.
Мэрси за поддержку :)
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108924
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MЗадача была идиотская.

Чем же идиотская? Норм задачка. Человек с зачатками понимания алгоритмов и структур данных и помнящий с первого курса про рекурсию должен быть способен выдать хотя бы путь решения. Как правило стопроцентно рабочий код для таких заданий и не требуется.
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108943
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я как-то на собеседовании решал примерно такую. Мне сказали, что может быть только * и +.


Решил через String.split

Наверное и здесь есть какие-то ограничения.
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108951
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

от до. На первый взгляд только - и скобки только в вычитаемом. :)
Через js можно нарваться на injection. :)

Но быть может им нужен человек, который напишет им калькулятор. :)
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108963
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Арсеньев,

тут посложнее, чем с + и *

Надо как-то находить скобки, внутри которых нет скобок, проводить вычисление и вместо

(какое-то выражение) подставлять в строку результат.

в итоге то, что получилось подавать на вход той же самой функции. Процесс продолжать до того момента, когда скобочек не останется.

ну и после этого если есть минусы, то произвести вычисление
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108966
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя сплит по скобкам....и потом рекурсивный сплит для результатов, где остались скобки. Когда скобок не осталось - сплит по минусам. Думаю до решения тут близко)
...
Рейтинг: 0 / 0
Как решить задачу?
    #39108998
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczSince: 1.6 в JavaDoc ни на что не намекает?

Ни на что. Вообще я не люблю намёки.

Впрочем, я допустил неточность - интерпретатор Rhino был встроенный.
Совместимость между ними неполная: так, для этой задачи Nashorn дал результат -5, а Rhino -5.0.

fixxerЧем же идиотская? Норм задачка. Человек с зачатками понимания алгоритмов и структур данных и помнящий с первого курса про рекурсию должен быть способен выдать хотя бы путь решения. Как правило стопроцентно рабочий код для таких заданий и не требуется.


Нормально идиотская задача, т.к. не имеет отношения к реальности. Какое значение имеет, кто за сколько её решит, если решать не нужно? Если быстро решит, то это не говорит в его пользу - есть немало программистов, которые со страшной скоростью пишут код, который вообще не нужен и даже вредит. Значит, таких там ценят - усердных идиотов.
Как-то я обретался на фирме Г... (такая она и была), там появился топ-менеджер (старший подлиза), который вдруг устроил программистам экзамен, задав именно эту задачу (только язык программирования не оговаривался). Я этим способом и решил (вызвав функцию eval() в JavaScript-е). Зачем изобретать велосипед? Этот субъект не умел программировать (так что идиотская задача видимо передаётся из рук в руки), а вообще качество программирования там было предельно низкое, что подобные начальнички контролировать не могли.
...
Рейтинг: 0 / 0
Как решить задачу?
    #39109016
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MНи на что. Вообще я не люблю намёки.

ОК. Говорю прямо. Java 8 для решения задачи не нужна. Достаточно Java 6.
...
Рейтинг: 0 / 0
Как решить задачу?
    #39109020
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MНормально идиотская задача, т.к. не имеет отношения к реальности. Какое значение имеет, кто за сколько её решит, если решать не нужно? Если быстро решит, то это не говорит в его пользу - есть немало программистов, которые со страшной скоростью пишут код, который вообще не нужен и даже вредит. Значит, таких там ценят - усердных идиотов.
Подозреваю что от JuIT требовалось просто знания того что в Java существует API для исполнения скриптов. Сомневаюсь что была задача именно написать код.
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Как решить задачу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]