zoukankan      html  css  js  c++  java
  • 【小米OJ-四则运算】

    import java.util.*;
    
    public class Main {
        public static void main(String args[]) {
            Scanner scan = new Scanner(System.in);
            String line;
            while (scan.hasNextLine()) {
                line = scan.nextLine().trim();
                // please write your code here
                System.out.println(Main.calculate(line));
            }
        }
        private static String calculate(String s){
            LinkedList<Integer> list = new LinkedList();
            char [] c = new char[s.length()+1];
            for(int i=0;i<c.length-1;i++) c[i] = s.charAt(i);
            c[c.length-1] = '+';///为下面运算准备,当前运算符的运算要检测到下一个运算符才运算
    
            int num=0;
            char pre='X';///初始化
            int temp;
            boolean flag = false;
            for(int i=0;i<c.length;i++){
                if(c[i]==' ') continue;
                if(flag) break;
                if(c[i]>='0'&&c[i]<='9') num = num*10+c[i]-'0';///一位位地把数字符转换为数字
                else{///,运算符进行运算的时间是在检测到下一个运算符才能运算
                    switch (pre){///这个运算符是之前的
                        case '+':
                              list.push(num);
                              break;
                        case '-':
                              list.push(num*(-1));
                              break;
                        case '*':
                              temp=(list.pop()*num);
                              list.push(temp);
                              break;
                        case '/':
                            if(num==0) {flag=true;break;}///分母为0
                            temp=(list.pop()/num);
                            list.push(temp);
                            break;
                        default:
                            list.push(num);
                            break;
                    }
                    pre = c[i];///存下当前的符号,为下一次运算
                    num=0;///num归0
                }
            }
            if(flag) return "err";
            int sum=0;
            while(list.size()!=0) sum+=list.pop();
            return sum+"";
        }
    }
    

      

    不忘初心,方得始终。只有走过弯路,才更确信当初最想要的是什么。
  • 相关阅读:
    mysql应用技巧
    Python httplib学习
    桌标相关知识
    行业百科知识--Github
    Ghost win7 系统安装(虚拟机)
    记一次pycharm和vscode因网络问题插件下载失败的问题
    Pydiction补全插件
    MS17-010远程溢出漏洞(CVE-2017-0143)
    shell快速入门
    Yarn架构
  • 原文地址:https://www.cnblogs.com/wszhu/p/12803055.html
Copyright © 2011-2022 走看看