Skip to content

Instantly share code, notes, and snippets.

@JFickel
Created April 23, 2013 02:43
Show Gist options
  • Save JFickel/5440425 to your computer and use it in GitHub Desktop.
Save JFickel/5440425 to your computer and use it in GitHub Desktop.
class RPNCalculator
def evaluate(string)
@pusher = []
@solver = 0
@string_breakdown = string.split
@string_breakdown.map! do |item|
if item != '+' && item != '-' && item != '*'
item.to_i
else
item
end
end
@string_breakdown.each do |op|
if op != "+" && op != "-" && op != "*"
@pusher << op
elsif op == "+"
@operands = @pusher.pop 2
@solver = @operands.first + @operands.last
@pusher << @solver
elsif op == "-"
@operands = @pusher.pop 2
@solver = @operands.first - @operands.last
@pusher << @solver
elsif op == "*"
@operands = @pusher.pop 2
@solver = @operands.first * @operands.last
@pusher << @solver
end
end
@pusher.first.to_i
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment