【LeetCode】150. Evaluate Reverse Polish Notation
来源:互联网 发布:青少年行知实践园的题 编辑:程序博客网 时间:2024/06/05 07:33
提交结果: 102 ms,84%
这题正常思路如下代码所示。需要注意的是负数。可以进一步,将三个函数合成一个,判断每次
测试安全:["3","-4","+"]
var evalRPN = function(tokens) { var nums = []; for(var i = 0, num1, num2; i<tokens.length; i++){ if(!isop(tokens[i])){ nums.push(tokens[i]); }else{ num1 = nums.pop(); num2 = nums.pop(); nums.push( doop(num2,num1,tokens[i]) ); } } return parseInt(nums.pop());};function isop(a){ if(a == "+" ||a == "-" ||a == "*" ||a == "/" ){ return true; }else{ return false; }}function doop(num2,num1,token){ num2 = num2 - "0"; num1 = num1 - "0"; // console.log(num2,token,num1); switch (token){ case "+": return num2 + num1; break; case "-": return num2 - num1; break; case "*": return num2 * num1; break; case "/": return parseInt(num2 / num1); break; }}
方法二:实际效率比前一种方法竟然低。可能是乘除法占用时间比较长的缘故。
var evalRPN = function(tokens) { if(tokens === null || tokens.length === 0){return null;} var result = []; for(var i = 0; i < tokens.length; i++){ if(tokens[i].charAt(0)==="-"&&tokens[i].length > 1){tokens[i] = " "+tokens[i];} switch(tokens[i]){ default: result.push(parseInt(tokens[i])); break; case "+": result.push(result.pop()+result.pop()); break; case "*": result.push(result.pop()*result.pop()); break; case "-": result.push(-1*result.pop() - (-1)*result.pop()); break; case "/": result.push( parseInt(1/( result.pop()/result.pop() )) ); break; } } return result.pop();};
阅读全文
0 0
- LeetCode 150. Evaluate Reverse Polish Notation
- [leetcode] 150.Evaluate Reverse Polish Notation
- 【leetcode】150. Evaluate Reverse Polish Notation
- Leetcode 150. Evaluate Reverse Polish Notation
- [LeetCode]150. Evaluate Reverse Polish Notation
- 150. Evaluate Reverse Polish Notation LeetCode
- Leetcode 150. Evaluate Reverse Polish Notation
- leetcode 150. Evaluate Reverse Polish Notation
- LeetCode 150. Evaluate Reverse Polish Notation
- LeetCode *** 150. Evaluate Reverse Polish Notation
- leetcode-150. Evaluate Reverse Polish Notation
- LeetCode-150.Evaluate Reverse Polish Notation
- leetcode.150. Evaluate Reverse Polish Notation
- LeetCode 150. Evaluate Reverse Polish Notation
- [leetcode] 150. Evaluate Reverse Polish Notation
- [leetcode] 【栈】150. Evaluate Reverse Polish Notation
- LeetCode - 150. Evaluate Reverse Polish Notation
- [LeetCode] 150. Evaluate Reverse Polish Notation
- linux下用top命令查看cpu利用率超过100%
- iOS开发-轻松学会封装自定义视图view(自定义弹框封装详解)
- Android Studio(2.3.3)配置Kotlin笔记
- java基础复习--复习总结1
- 项目框架总结
- 【LeetCode】150. Evaluate Reverse Polish Notation
- iOS json格式转换
- LeetCode
- 矩阵快速幂 hdu1757
- 下载Nexus老版本war包
- 【containerd 1.0 源码分析】containerd-shime 启动流程分析
- 【Python学习系列二十八】绘图库pyecharts
- Linux下线程同步问题中的互斥锁和条件变量
- 微信小程序学习笔记(一)——css小技巧