题解 | #堆栈的使用#

堆栈的使用

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


//这个算法只能用于整数是一位数的情况,而题目里说  0 < n <= 10000

/*转到第19行
        string temp;///!!!!!!!!
        getline(cin,temp);//唉,这个错误折磨了我很久才发现。就是第一行数字后面有个换行符要接收一下才能正常地接收后续每一行地字符串,不然就默认接受的第一个字符串时数字后面的换行符

#include <iostream>
#include <stack>
using namespace std;

int main() {
    int n;
    while (cin >> n) {
    stack<char> num;
    while(!num.empty())num.pop();//C++没有提供可以调用的栈清空函数,要手动清空


        string temp;///!!!!!!!!
        getline(cin,temp);//唉,这个错误折磨了我很久才发现。就是第一行数字后面有个换行符要接收一下才能正常地接收后续每一行地字符串,不然就默认接受的第一个字符串时数字后面的换行符


        for(int i=1;i<=n;i++)
        {
            string str;
            getline(cin,str);//必须接受一行不能用cin>>str;
                if(str[0]=='A')
                {
                    if(num.empty())
                    {
                        cout<<"E"<<endl;
                    }
                    else
                    {
                        cout<<num.top()<<endl;
                    }

                }
                else if(str[0]=='P')
                {
                    num.push(str[2]);

                }
                else {
                    if(num.empty())continue;
                    else num.pop();
                }
        }

    }
}
*/


#include <iostream>
#include <stack>
using namespace std;

int main()
{
    int n;
    while (cin >> n)
    {
        stack<int> num;
        for(int i=1;i<=n;i++)
        {
            char x;
            int y;
            cin>>x;
            if(x=='A')
            {
                    if(num.empty())
                    {
                        cout<<"E"<<endl;
                    }
                    else
                    {
                        cout<<num.top()<<endl;
                    }
            }
            else if(x=='P')
                {
                    cin>>y;
                    num.push(y);

                }
            else
            {
                    if(num.empty())continue;
                    else num.pop();
            }
        }
    }
}







全部评论

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:46
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
440577次浏览 4493人参与
# 春招别灰心,我们一人来一句鼓励 #
41484次浏览 524人参与
# 阿里云管培生offer #
119829次浏览 2219人参与
# 地方国企笔面经互助 #
7928次浏览 18人参与
# 同bg的你秋招战况如何? #
75577次浏览 552人参与
# 虾皮求职进展汇总 #
114215次浏览 884人参与
# 北方华创开奖 #
107300次浏览 599人参与
# 实习,投递多份简历没人回复怎么办 #
2454001次浏览 34848人参与
# 实习必须要去大厂吗? #
55678次浏览 960人参与
# 提前批简历挂麻了怎么办 #
149825次浏览 1977人参与
# 投递实习岗位前的准备 #
1195707次浏览 18546人参与
# 你投递的公司有几家约面了? #
33178次浏览 188人参与
# 双非本科求职如何逆袭 #
661910次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4730次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157604次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11365次浏览 270人参与
# 发工资后,你做的第一件事是什么 #
12418次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35612次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20091次浏览 240人参与
# 我的上岸简历长这样 #
451924次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39235次浏览 314人参与
# 非技术岗是怎么找实习的 #
155850次浏览 2120人参与
牛客网
牛客企业服务