Java教程

基本计算器II java 算法与数据结构

本文主要是介绍基本计算器II java 算法与数据结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。

整数除法仅保留整数部分。

输入:s = "3+2*2"
输出:7
输入:s = " 3/2 "
输出:1
class Solution {
    public int calculate(String s) {
        Stack<Integer> stack = new Stack<Integer>();
        int num = 0;
        char ch = '+';
        //int res = 0;
        int sum = 0;
        int n = s.length();
        for(int i = 0; i<n; i++){
            if(Character.isDigit(s.charAt(i))){
                num = num*10 + (s.charAt(i)-'0');
            }
            if(!Character.isDigit(s.charAt(i))&& s.charAt(i)!= ' '||i==n-1){
                switch(ch){
                case '+':
                    stack.push(num);
                    break;
                case '-':
                    stack.push(-num);
                    break;
                case '*':
                    stack.push(stack.pop()*num);
                    break;
                case '/':
                    stack.push(stack.pop()/num);
                    break;
                }
                num = 0;
                ch =s.charAt(i);
            }
            
        }
        int m = stack.size();
        for(int i = 0; i<m;i++){
            sum += stack.pop();
        }
        return sum;
    }
}

这篇关于基本计算器II java 算法与数据结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!