zoukankan      html  css  js  c++  java
  • (medium)LeetCode 224.Basic Calculator

    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.

    代码如下:

    public class Solution {
        public int calculate(String s) {
           Stack<Integer>stack=new Stack<Integer>();
           int ret=0;
           int num=0;
           int sign=1;
           for(int i=0;i<s.length();i++){
               char c=s.charAt(i);
               if(Character.isDigit(c)){
                   num=10*num+c-'0';
               }
               else if(c=='+'){
                   ret+=sign*num;
                   num=0;
                   sign=1;
               }else if(c=='-'){
                   ret+=sign*num;
                   num=0;
                   sign=-1;
               }else if(c=='('){
                   stack.push(ret);
                   stack.push(sign);
                   sign=1;
                   ret=0;
               }else if(c==')'){
                   ret+=sign*num;
                   num=0;
                   ret*=stack.pop();
                   ret+=stack.pop();
               }
           }
           if(num!=0) ret+=sign*num;
           return ret;
        }
    }
    

      运行结果:

  • 相关阅读:
    k8s-存储-volume
    k8s-存储-configmap
    k8s-集群调度
    k8s-常用命令
    k8s-资源限制
    k8s-更改证书时间
    kubeadmin安装k8s
    CCPC-Wannafly Winter Camp Day7 D---二次函数【数论】【构造】
    洛谷P1219 八皇后【dfs】
    2019寒假计数器
  • 原文地址:https://www.cnblogs.com/mlz-2019/p/4711224.html
Copyright © 2011-2022 走看看