[leetcode]224. Basic Calculator --JavaScript 代码
来源:互联网 发布:windows xp outlook 编辑:程序博客网 时间:2024/05/29 16:05
这道题的tag里写着stack呢,因此,就要考虑使用栈来完成题目。
这道题据说很经典,我在编写计算器的程序时,也遇到过类似的问题。
思路:
当没有遇到运算符的时候,就一直解析字符串中的数字,并将它们转化为真正的数字。如果遇到加号或者减号,就改变标志位,如果遇到括号,就借助栈来完成运算。遇到 “(” 入栈,遇到 “)” 出栈并计算结果。
/** * @param {string} s * @return {number} */var calculate = function(s) { var len = s.length; if(len === 0){ return 0; } var stack = []; var res = 0; var sign = 1; for(var i=0;i<len;i++){ var n = s.charAt(i); if (!isNaN(parseInt(n))){ var cur = parseInt(n); while(i+1<len && (!isNaN(parseInt(s.charAt(i+1))))){ cur = 10*cur + parseInt(s.charAt(++i)); } res += sign * cur; } else if (n=="-"){ sign = -1; } else if (n=="+"){ sign = 1; } else if (n=="("){ stack.push(res); res = 0; stack.push(sign); sign = 1; } else if (n==")"){ res = stack.pop() * res + stack.pop(); sign = 1; } } return res;};
0 0
- [leetcode]224. Basic Calculator --JavaScript 代码
- [leetcode]227. Basic Calculator II -- JavaScript 代码
- [leetcode] 224.Basic Calculator
- [leetcode] 224. Basic Calculator
- Leetcode-224.Basic Calculator
- [LeetCode]224. Basic Calculator
- leetcode 224. Basic Calculator
- leetcode.224. Basic Calculator
- LeetCode-224.Basic Calculator
- [LeetCode]224. Basic Calculator
- 【leetcode】224. Basic Calculator
- [LeetCode]224. Basic Calculator
- LeetCode 224.Basic Calculator
- LeetCode 224. Basic Calculator
- leetcode 224. Basic Calculator
- 【LeetCode】Basic Calculator && Basic Calculator II
- LeetCode - Basic Calculator & Basic Calculator II
- Leetcode之Basic Calculator & Basic Calculator II
- Maven+spring+junit测试,出…
- Retrofit 使用流程
- 经典排序算法-堆排序HeapSort
- 内排序-归并排序
- 入门视频采集与处理(视频分辨率介绍)
- [leetcode]224. Basic Calculator --JavaScript 代码
- c++中的输入输出流重载函数实现
- 数据处理
- c#事件和委托
- Linux 3.2.60 网络协议栈分析之网络层(一)
- mui一些小组件
- python基础教程第8章笔记
- Linux Grep基础介绍与语法
- 在CentOS上安装Python