Evaluates well-formed reverse polish notation expressions (http://en.wikipedia.org/wiki/Reverse_Polish_notation).
Strings with tokens separated by single spaces. Tokens are operators or operands. Operators are +, -, * or /. Operands are integers or floats (e.g. 7, 3.23, -1e9).
The value of the evaluated expression.
"1 1 +" -> 2
"5 8 -" -> -3
"2 3 7 + -" -> -8
"5 3 * 5 +" -> 20
In each case you pop 2 values from the stack. I guess you could cut some bits doing it only once at the beginning of the loop. A while(j--) loop could be shorter (but reversed). There's a lot of extra parenthesis and some semi-colons. The ternary operator (?:) is shorter than &&||.
Have fun!