2022-08-17 栈

剑指 Offer II 036. 后缀表达式

···
class Solution {
public int evalRPN(String[] tokens) {

    // 栈的思路
    ArrayDeque<Integer> stack=new ArrayDeque<>();
    int i=0;
    while(i<tokens.length){
        if(!isNumber(tokens[i])){
            int b=stack.pollFirst();
            int a=stack.pollFirst();
           int tmp=calculate( a, b,tokens[i]);
        //    System.out.println(tmp);
           stack.addFirst(tmp);
            
        }else{
            stack.addFirst(Integer.parseInt(tokens[i]));
        }
        i++;
    }
    return stack.poll();

}
public boolean isNumber(String token) {
    return !("+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token));
}

public int calculate(int a,int b,String str){
    if(str.equals("+")){
        return a+b;
    }
    if(str.equals("-")){
        return a-b;
    }
    if(str.equals("*")){
        return a*b;
    }
    if(str.equals("/")){
        return a/b;
    }
    return 0;
}

}
···

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容