题解 | 牛牛与后缀表达式

牛牛与后缀表达式

https://www.nowcoder.com/practice/a1a4f178f6ff4188890e51da1cc8ce10

//Character.isDigit检查字符是否是数字
//char类型的数字-'0'可以直接当int运算。
//这是因为Java中的字符类型(char)本质上是Unicode编码,数字字符’0’到’9’在Unicode中是连续的。
//所以当你执行一个数字字符减去’0’时,实际上是在计算它们的Unicode码点差值。
import java.util.*;
public class Solution {
    /**
     * @param str string字符串 
     * @return long长整型
     */
    public long legalExp (String str) {
        // write code here
        Stack<Long> sk=new Stack<>();
        for(int i=0;i<str.length();i++){
            char A=str.charAt(i);
            if(Character.isDigit(A)){
                long Sum=0;
                while(i<str.length()&&Character.isDigit(str.charAt(i))){
                    Sum=Sum*10+(str.charAt(i)-'0');
                    i++;
                }
                i--;
                sk.push(Sum);
            }else if(A=='#'){
                continue;
            }else{
                long b=sk.pop();
                long a=sk.pop();
                long C=0;
                switch(A){
                    case '+':C=a+b ;break;
                    case '-':C=a-b;break;
                    case '*':C=a*b;break;
                }
                sk.push(C);
            }
        }
        return sk.pop();
    }
}

全部评论

相关推荐

02-25 16:55
已编辑
北京工业大学 Java
211本,找日常实习的话,如果面向中厂的话,需要刷hot100么?因为之前从来没刷过,算法仅限于学校课程水平,准备3月投递简历,现在还需要背八股文,时间有些紧张,还需要刷算法题么?同时什么样的公司可以算是中厂呢?
程序员小白条:中大厂说的上名字的,必定要算法,hot100只是最基础的了,题库远不止100题捏,一般在300-400题量之间,算法=学校课程=简单题也做不出,多准备八股文和算法吧,其他项目可以放放,精刷算法就行了,花时间成长很快的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-24 17:04
点赞 评论 收藏
分享
01-30 09:45
燕山大学 Java
喵_coding:这种直接跑就完事了 哪有毕业了才签合同 任何offer和三方都没有的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务