Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def solveRPN(input: String): Double = {
- input.split(" ").toList.foldLeft(List[Double]()){(out, in) =>
- in match {
- case "+" => out.dropRight(2) :+ (out.dropRight(1).last + out.last)
- case "-" => out.dropRight(2) :+ (out.dropRight(1).last - out.last)
- case "*" => out.dropRight(2) :+ (out.dropRight(1).last * out.last)
- case "/" => out.dropRight(2) :+ (out.dropRight(1).last / out.last)
- case "%" => out.dropRight(2) :+ (out.dropRight(1).last % out.last)
- case _ => out :+ in.toDouble
- }
- }.head
- }
- println(solveRPN("1 3 +"))
- println(solveRPN("1 3 + 5 2 - *"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement