博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Evaluate Reverse Polish Notation
阅读量:5077 次
发布时间:2019-06-12

本文共 2367 字,大约阅读时间需要 7 分钟。

Evaluate Reverse Polish Notation

Valid operators are +-*/. Each operand may be an integer or another expression.

Some examples:

["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9  ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6 c++版本:
class Solution{public:    int evalRPN(vector
&tokens){ if(tokens.size()==1) return stoi(*tokens.begin()); stack
numbers; vector
::iterator it=tokens.begin(); int op1=0; int op2=0; while(it!=tokens.end()){ if(*it=="+"||*it=="-"||*it=="*"||*it=="/"){ op2=numbers.top(); numbers.pop(); op1=numbers.top(); numbers.pop(); if(*it=="+") numbers.push(op1+op2); else if(*it=="-") numbers.push(op1-op2); else if(*it=="*") numbers.push(op1*op2); else numbers.push(op1/op2); } else numbers.push(stoi(*it)); it++; } return numbers.top();}};

  Java版本:

public class Solution {    public int evalRPN(String[] tokens) {        int returnValue = 0;        String operators = "+-*/";        Stack
stack = new Stack
(); for(String t:tokens) { if(!operators.contains(t)) { stack.push(t); } else { int a = Integer.valueOf(stack.pop()); int b = Integer.valueOf(stack.pop()); int index = operators.indexOf(t); switch(index){ case 0: stack.push(String.valueOf(a+b)); break; case 1: stack.push(String.valueOf(b-a)); break; case 2: stack.push(String.valueOf(a*b)); break; case 3: stack.push(String.valueOf(b/a)); break; } } } returnValue = Integer.valueOf(stack.pop()); return returnValue; }}

 

转载于:https://www.cnblogs.com/zlz-ling/p/4035497.html

你可能感兴趣的文章
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
bcb ole拖拽功能的实现
查看>>
生活大爆炸之何为光速
查看>>
bzoj 2456: mode【瞎搞】
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>
[GraphQL] Reuse Query Fields with GraphQL Fragments
查看>>
Illustrated C#学习笔记(一)
查看>>
理解oracle中连接和会话
查看>>
两种最常用的Sticky footer布局方式
查看>>
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>
HDU 5510 Bazinga KMP
查看>>
[13年迁移]Firefox下margin-top问题
查看>>
Zookeeper常用命令 (转)
查看>>
Java程序IP v6与IP v4的设置
查看>>
RUP(Rational Unified Process),统一软件开发过程
查看>>
数据库链路创建方法
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>