|
|
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
String s="2-(5-(7-9))" Необходимо получить арифметический результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 19:22 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Не используя либы, это вопрос с собеседования Решение должно быть в лоб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 19:30 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
JulTНе используя либы, это вопрос с собеседования Решение должно быть в лоб Даже лень было посмотреть что по ссылкам? https://docs.oracle.com/javase/8/docs/api/javax/script/ScriptEngine.html Since: 1.6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 19:43 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Прямо на собеседовании надо было сидеть городить рекурсивный парсер (см. recursive descent parser) или сортировочную станцию (см. shunting-yard algorithm)??? Больно жестоко, как по мне. То есть ничего сложного (rdp для чисел, скобок и вычитания можно уместить в 20-30 значимых строчек), но только когда никто и ничто не отвлекает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 19:46 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
wstПрямо на собеседовании надо было сидеть городить рекурсивный парсер (см. recursive descent parser) или сортировочную станцию (см. shunting-yard algorithm)??? Больно жестоко, как по мне. То есть ничего сложного (rdp для чисел, скобок и вычитания можно уместить в 20-30 значимых строчек), но только когда никто и ничто не отвлекает. Делов-то: http://cogitolearning.co.uk/?p=565 в дерево разобрать и обойти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 21:01 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Вот тут неплохо описано http://stackoverflow.com/questions/14320308/how-to-run-javascript-in-java-programming ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 23:01 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczДелов-то Это когда в привычной обстановке можно с ходу расписать, что-то вроде expr0: number | '(' expr1 ')'; expr1: expr0 (('+'|'-') expr0)*; и свести все к 2 функциям для вычисления expr-ов и одной для нарезания строки на элементы. А вот после часа дороги и часа отвлеченной болтовни можно и более простые вещи перепутать/позабыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 02:21 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
JulTРешение должно быть в лоб возможно, это вопрос-проверка на знание о том, что существуют алгоритмы типа https://ru.wikipedia.org/wiki/Алгоритм_сортировочной_станции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 02:55 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
18443434 не обратил внимания ((( Вот еще: http://stackoverflow.com/questions/5085524/regular-expression-for-simple-arithmetic-string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 06:53 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. Не смогла я решить эту задачку на собеседовании, в итоге меня определили в джуниоры и отправили домой ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 11:38 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
JuIT в итоге меня определили в джуниоры и отправили домой Может оно и к лучшему. Задача была идиотская. Значит, тот кто её задал - идиот и набирает на работу идиотов. И кто его держит на работе идиот. То есть, вся организация идиотская. Впрочем, есть простое решение, требующее JDK 8: использование встроенного в JDK интерпретатора JavaScript, называемого Nashorn. На версию JDK условия не было? Тогда сгодилось бы. Для прежних версий JDK пришлось бы использовать дополнительную библиотеку с интерпретатором скриптового языка (для JavaScript - например, Rhino), также синтаксис выражения соответствует Groovy. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 12:01 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Partisan MВпрочем, есть простое решение, требующее JDK 8: Since: 1.6 в JavaDoc ни на что не намекает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 12:06 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Partisan MJuIT в итоге меня определили в джуниоры и отправили домой Может оно и к лучшему. Задача была идиотская. Значит, тот кто её задал - идиот и набирает на работу идиотов. И кто его держит на работе идиот. То есть, вся организация идиотская. Впрочем, есть простое решение, требующее JDK 8: использование встроенного в JDK интерпретатора JavaScript, называемого Nashorn. На версию JDK условия не было? Тогда сгодилось бы. Для прежних версий JDK пришлось бы использовать дополнительную библиотеку с интерпретатором скриптового языка (для JavaScript - например, Rhino), также синтаксис выражения соответствует Groovy. Мэрси за поддержку :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 12:17 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Partisan MЗадача была идиотская. Чем же идиотская? Норм задачка. Человек с зачатками понимания алгоритмов и структур данных и помнящий с первого курса про рекурсию должен быть способен выдать хотя бы путь решения. Как правило стопроцентно рабочий код для таких заданий и не требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:11 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Я как-то на собеседовании решал примерно такую. Мне сказали, что может быть только * и +. Решил через String.split Наверное и здесь есть какие-то ограничения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:21 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
questioner, от до. На первый взгляд только - и скобки только в вычитаемом. :) Через js можно нарваться на injection. :) Но быть может им нужен человек, который напишет им калькулятор. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:25 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, тут посложнее, чем с + и * Надо как-то находить скобки, внутри которых нет скобок, проводить вычисление и вместо (какое-то выражение) подставлять в строку результат. в итоге то, что получилось подавать на вход той же самой функции. Процесс продолжать до того момента, когда скобочек не останется. ну и после этого если есть минусы, то произвести вычисление ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:38 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
хотя сплит по скобкам....и потом рекурсивный сплит для результатов, где остались скобки. Когда скобок не осталось - сплит по минусам. Думаю до решения тут близко) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:41 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczSince: 1.6 в JavaDoc ни на что не намекает? Ни на что. Вообще я не люблю намёки. Впрочем, я допустил неточность - интерпретатор Rhino был встроенный. Совместимость между ними неполная: так, для этой задачи Nashorn дал результат -5, а Rhino -5.0. fixxerЧем же идиотская? Норм задачка. Человек с зачатками понимания алгоритмов и структур данных и помнящий с первого курса про рекурсию должен быть способен выдать хотя бы путь решения. Как правило стопроцентно рабочий код для таких заданий и не требуется. Нормально идиотская задача, т.к. не имеет отношения к реальности. Какое значение имеет, кто за сколько её решит, если решать не нужно? Если быстро решит, то это не говорит в его пользу - есть немало программистов, которые со страшной скоростью пишут код, который вообще не нужен и даже вредит. Значит, таких там ценят - усердных идиотов. Как-то я обретался на фирме Г... (такая она и была), там появился топ-менеджер (старший подлиза), который вдруг устроил программистам экзамен, задав именно эту задачу (только язык программирования не оговаривался). Я этим способом и решил (вызвав функцию eval() в JavaScript-е). Зачем изобретать велосипед? Этот субъект не умел программировать (так что идиотская задача видимо передаётся из рук в руки), а вообще качество программирования там было предельно низкое, что подобные начальнички контролировать не могли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:58 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Partisan MНи на что. Вообще я не люблю намёки. ОК. Говорю прямо. Java 8 для решения задачи не нужна. Достаточно Java 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 14:06 |
|
||
|
Как решить задачу?
|
|||
|---|---|---|---|
|
#18+
Partisan MНормально идиотская задача, т.к. не имеет отношения к реальности. Какое значение имеет, кто за сколько её решит, если решать не нужно? Если быстро решит, то это не говорит в его пользу - есть немало программистов, которые со страшной скоростью пишут код, который вообще не нужен и даже вредит. Значит, таких там ценят - усердных идиотов. Подозреваю что от JuIT требовалось просто знания того что в Java существует API для исполнения скриптов. Сомневаюсь что была задача именно написать код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 14:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39108195&tid=2124639]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
178ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
92ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 593ms |

| 0 / 0 |
