Skip to content

Instantly share code, notes, and snippets.

@maniish-jaiin
Last active July 15, 2020 12:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maniish-jaiin/66848af747064eaf9f33eb9ec742b549 to your computer and use it in GitHub Desktop.
Save maniish-jaiin/66848af747064eaf9f33eb9ec742b549 to your computer and use it in GitHub Desktop.
public double evaluate(String s) {
String[] elements = getStringArray(s);
Stack<Double> numbers = new Stack();
double result = 0.0;
for (String c : elements) {
switch (c) {
case "+": {
result = numbers.push(numbers.pop() + numbers.pop());
break;
}
case "-": {
double firstNumber = numbers.pop();
double secondNumber = numbers.pop();
result = numbers.push(secondNumber - firstNumber);
break;
}
case "*": {
result = numbers.push(numbers.pop() * numbers.pop());
break;
}
case "/": {
double firstNumber = numbers.pop();
double secondNumber = numbers.pop();
result = numbers.push(secondNumber / firstNumber);
break;
}
default:
numbers.push(Double.parseDouble(c));
break;
}
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment