leetcode: Basic Calculator
来源:互联网 发布:天天向上网络版权费 编辑:程序博客网 时间:2024/06/06 00:49
Implement a basic calculator to evaluate a simple expression string.
The expression string may contain open (
and closing parentheses )
, the plus +
or minus sign -
, non-negative integers and empty spaces.
You may assume that the given expression is always valid.
Some examples:
"1 + 1" = 2" 2-1 + 2 " = 3"(1+(4+5+2)-3)+(6+8)" = 23
Note: Do not use the eval
built-in library function.
class Solution {public: int calculate(string s) { stack<int> signs; int lastSign = 1; int curNum = 0; int retSum = 0; for (auto c: s) { if (c == '(') { signs.push(lastSign);//进栈主要用在有括号的情况,如果没有括号,就不需要有栈 } else if (c == ')') { signs.pop(); } else if (c >= '0' && c <= '9') { curNum = curNum * 10 + (c-'0'); } else if (c == '+' || c == '-') { retSum = retSum + lastSign * curNum; lastSign = (c == '+'? 1:-1); if (signs.size() > 0) lastSign = lastSign * signs.top(); curNum = 0; } } return retSum + lastSign * curNum; }};
0 0
- 【LeetCode】Basic Calculator && Basic Calculator II
- LeetCode - Basic Calculator & Basic Calculator II
- Leetcode之Basic Calculator & Basic Calculator II
- [leetcode] Basic Calculator
- Basic Calculator - LeetCode 224
- LeetCode Basic Calculator
- leetcode:Basic Calculator
- [leetcode][math] Basic Calculator
- [LeetCode] Basic Calculator
- Leetcode 224: Basic Calculator
- leetcode 224 Basic Calculator
- [LeetCode] Basic Calculator II
- [leetcode] Basic Calculator II
- [Leetcode] Basic Calculator
- leetcode Basic Calculator
- leetcode Basic Calculator II
- LeetCode-Basic Calculator
- leetcode Basic Calculator 栈
- chmod 777修改文件系统权限
- leetcode:Implement Trie (Prefix Tree)
- Android:获取版本号
- 动态规划——小胖办证
- poj 2002 hash(平面上若干点能够成多少正方形)
- leetcode: Basic Calculator
- s3c2440时钟+nandflash拷贝至SDRAM+开启mmu
- 冥想
- leetcode:Integer to English Words
- 新手
- ubuntu 安装配置 JDK
- leetcode:Remove Invalid Parentheses
- android studio中做断点测试
- Java设计模式(二十二)----调停者模式