ONP - Transform the Expression

Transform the algebraic expression with brackets into RPN form (Reverse Polish Notation). Two-argument operators: +, -, *, /, ^ (priority from the lowest to the highest), brackets ( ). Operands: only letters: a, b ... z. Assume that there is only one RPN form (no expressions like a*b*c).

Input

t [the number of expressions <= 100]
expression [length <= 400]
[other expressions]

Text grouped in [ ] does not appear in the input file.

Output

The expressions in RPN form, one per line.

Example

Input:
3
(a+(b*c))
((a+b)*(z+x))
((a+t)*((b+(a+c))^(c+d)))

Output:
abc*+
ab+zx+*
at+bac++cd+^*

Added by:mima
Date:2004-05-01
Time limit:5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: NODEJS PERL6 VB.NET
Resource:-

hide comments
2019-04-15 18:00:05
did it without using stack :P
2019-04-10 03:47:41
I have learnt concepts of stack and queue in c++ because of this problem :)
2019-04-09 16:14:58
there is an recursive solution to it?
2019-03-25 19:17:28
AC in One go :P
2019-02-16 12:37:43
solved this with recursion
2019-01-27 21:01:15
lol I did rly stupid i didn't use stack i created dumb token class and separate on operator but it works anyways i think maybe logn times slower than stack
2019-01-08 07:16:03
Why I keep geting runtime error (NZEC) ?
2019-01-07 18:58:28
Just use stack
2018-12-30 22:10:19
got me stuck for an hour because I took expression length to be 100.. : (
2018-12-23 13:12:22
Why would my code take 16M Memory to execute?
I used C++ and STL constructs. Is that the reason it took too long to execute?
Would it have been better if I had used just the basic char arrays to perform operations?

Last edit: 2018-12-23 13:13:06
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.