【栈】【字符串和int类型转化】Leetcode 150 逆波兰表达式求值

【栈】【字符串和int类型转化】Leetcode 150 逆波兰表达式求值

    • 解法1 栈

---------------题目链接 Leetcode 150 逆波兰表达式求值 -------------------

【栈】【字符串和int类型转化】Leetcode 150 逆波兰表达式求值_第1张图片

解法1 栈

字符串转化为int类型数据:
Integer.parseInt(s)
Long.parseLong(s)
Double.parseDouble(s)
判断字符串相等
s1.equals(s2)
创建栈
Stack<> mystack = new Stack<>();

时间复杂度O(N)
空间复杂度O(N)

class Solution {
    public int evalRPN(String[] tokens) {
        Stack<Integer> mystack = new Stack<>();

        for(int i = 0; i < tokens.length; i++){
            if(tokens[i].equals("+")){
                int temp = mystack.pop();
                mystack.push(mystack.pop() + temp);
            } else if(tokens[i].equals("-")){
                int temp = mystack.pop();
                mystack.push(mystack.pop() - temp);
            } else if(tokens[i].equals("*")){
                int temp = mystack.pop();
                mystack.push(mystack.pop() * temp);
            } else if(tokens[i].equals("/")){
                int temp = mystack.pop();
                mystack.push(mystack.pop() / temp);
            } else{
                mystack.push(Integer.parseInt(tokens[i]));
            }
        }
        return  mystack.pop();
    }
}

你可能感兴趣的:(Leetcode,leetcode,算法,java,职场和发展,程序人生)