牛客编程巅峰赛S2第5场 - 青铜&白银&黄金 牛牛与后缀表达式

牛牛与后缀表达式

https://ac.nowcoder.com/acm/contest/9556/C

思路还是很简单的,对字符串转为字符数组,遍历将数字存入栈中,遇到运算符则出栈两个进行运算(注意是后出的那个数在前面,不要反了顺序,要不然减***出错),运算完再鸭压入栈中,最后输出栈顶元素即可

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 给定一个后缀表达式,返回它的结果
     * @param str string字符串 
     * @return long长整型
     */
   public static long solve (String str) {
            // write code here
        Stack<Long> queueNum=new Stack<>();
        char [] strs=str.toCharArray();
        //System.out.println(Arrays.toString(strs));
        long a1,a2;
        String x="";
        for(int i=0;i<strs.length;i++) {
            if(strs[i]<='9'&&strs[i]>='0') {
                x=x+strs[i];
                System.out.println(x);
            }
            else if(strs[i]=='#') {
                queueNum.push(Long.parseLong(x));
                x="";
            }
            else{
                a1=queueNum.pop();
                a2=queueNum.pop();   
                if(strs[i]=='+')
                    queueNum.push(a2+a1);
                else if(strs[i]=='-')
                    queueNum.push(a2-a1);
                else 
                    queueNum.push(a2*a1);
            }
            //System.out.println(queueNum);
        }
        return queueNum.peek();
    }
}
全部评论
大佬,我的为什么错了啊 https://ac.nowcoder.com/acm/contest/view-submission?submissionId=51460298&returnHomeType=1&uid=380004914
1 回复 分享
发布于 2022-03-26 22:27

相关推荐

不愿透露姓名的神秘牛友
06-25 17:22
点赞 评论 收藏
分享
牛客383479252号:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-23 18:33
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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