2015-12-23 1 views
1

Я написал код, который анализирует данный вход. Я пытался исправить это около трех часов. Но я не могу получить ожидаемый результат. Тем не менее, я новичок в использовании стека и Java. Кто-нибудь может мне помочь? Issue is fixed.попытка увидеть ожидаемый результат с использованием стека

Ожидаемый результат:

START -> INPUT 
-> EXP 
-> EXPI 
(+ EXPI EXPI) 
(+EXPI Id) 
(+Id Id) 

ответ

0

В while (!stackCopy.Pop().Equals("(")) у вас 2 жетона перед "(", так idCon.Push("EXPI"); называли дважды. В результате условие if (temp.Equals("EXPI")) было выполнено дважды, а "EXPI" было напечатано в последней строке.

+0

так? Я не могу понять решение, не могли бы вы показать мне? @guy – askque

+0

Вы вызываете 'stackCopy.pop();' дважды, почему не третий раз? – Guy

+0

Я не думаю, что вы не понимаете мою проблему. Я звоню дважды, потому что в соответствии с вводом у меня есть два EXPI. Итак, мне нужно заменить два EXPI Id поэтапным вводом. Я думаю, вы тоже не запускаете мой код. – askque