HDU 2646 栈的应用 STL
Expression
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 202 Accepted Submission(s): 61
#include<bits/stdc++.h>
using namespace std;
char a[105];
stack<char> m;//运算符栈
stack<int> n;//操作室栈
map<char,int> mp;
//40 (
//41 )
//42 *
//43 +
//45 -
int main()
{
mp['-']=1;
mp['+']=1;
mp['*']=2;
mp['(']=-1;
mp[')']=-1;
memset(a,0,sizeof(a));
while(gets(a))
{ while(!m.empty())
m.pop();
while(!n.empty())
n.pop();
n.push(0);//考虑初始有符号 放在栈底
int len=strlen(a);
int exm=0;
int xx,yy;
char what;
for(int i=0; i<len; i++)
{
if(a[i]>=48&&a[i]<=57)
exm=exm*10+a[i]-'0';
else
{
if(a[i]=='(')// 前括号处理 添0 处理紧邻的符号
{
m.push(a[i]);
n.push(0);
continue;
}
if(m.empty())//若运算符栈为空
{
m.push(a[i]);
continue;
}
else
{
if(mp[a[i]]>mp[m.top()]) //优先级大于栈顶运算符
m.push(a[i]);
else
{//直到优先级大于栈顶 或 栈空 或栈顶为后括号(这个没有验证)
while(!m.empty()&&mp[a[i]]<=mp[m.top()]&&m.top()!='(')// 这里理解
{
xx=n.top();
n.pop();
yy=n.top();
n.pop();
what=m.top();
m.pop();
if(mp[what]==1)
{
if(what=='+')
n.push(yy+xx);
if(what=='-')
n.push(yy-xx);
}
if(mp[what]==2)
n.push(yy*xx);
}
if(!m.empty()&&m.top()=='('&&a[i]==')') //当前后括号相遇pop
m.pop();
else //否则插入
m.push(a[i]); }
continue;
}
}
if(i>=1)//处理前括号后若无符号
{
if(a[i-1]=='(')
n.pop();
}
if(mp[a[i+1]]!=0)//判断exm 积累结束
{
n.push(exm);
exm=0;
}
if(i==len-1&&a[i]!=')')//考虑最后一个操作数
n.push(exm); }
while(!m.empty())//直到 运算符栈空
{
xx=n.top();
n.pop();
yy=n.top();
n.pop();
what=m.top();
m.pop();
if(mp[what]==1)
{
if(what=='+')
n.push(yy+xx);
if(what=='-')
n.push(yy-xx);
}
if(mp[what]==2)
n.push(yy*xx);
}
printf("%d\n",n.top());//输出栈顶值
memset(a,0,sizeof(a));
}
return 0;
}
HDU 2646 栈的应用 STL的更多相关文章
- HDU - 1022 Train Problem I STL 压栈
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu 1022 Train Problem I(栈的应用+STL)
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 解决HDU爆栈的问题
转载:http://forum.byr.edu.cn/article/ACM_ICPC/51264 大家懂的,鉴于HDU用的是windows服务器,所以stack大小及其坑爹,稍微深一点的递归栈就会s ...
- hdu 6040 Hints of sd0061(stl: nth_element(arr,arr+k,arr+n))
Hints of sd0061 Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others ...
- 数据结构--栈(附上STL栈)
定义: 栈是一种只能在某一端插入和删除数据的特殊线性表.他按照先进先出的原则存储数据,先进的数据被压入栈底,最后进入的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后被压入栈的,最先弹出).因此栈 ...
- ACM YTU 十进制与八进制的转换 (栈和队列) STL栈调用
十进制与八进制的转换(栈和队列) Description 对于输入的任意一个非负十进制整数,利用栈打印输出与其等值的八进制数. Input 111 Output 157 Sample Input 14 ...
- UVa - 12096 集合栈计算机(STL)
[题意] 有一个专门为了集合运算而设计的“集合栈”计算机.该机器有一个初始为空的栈,并且支持以下操作:PUSH:空集“{}”入栈DUP:把当前栈顶元素复制一份后再入栈UNION:出栈两个集合,然后把两 ...
- *HDU 1237 栈
简单计算器 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- hdu 2094 产生冠军(STL,set)
题目 //把所有的出现的名字开始默认都为冠军(1),然后输了的置为0,表示不为冠军,最后统计不为0的, //当有且只有一个不为0的,这个就为冠军,否则,不能产生冠军. //以上思路来自别人的博客.. ...
随机推荐
- C#使用EF连接PGSql数据库
前言 由于项目需要,使用到了PGSql数据库,说实话这是第一次接触并且听说PGSql(PostgreSQL)关系型数据库,之前一直使用的都是SqlServer,一头雾水的各种找资源,终于将PGSql与 ...
- TW实习日记:第22天
今天开发项目的还没完成的功能点,没什么难的,样式复制粘贴,JSON表单配一配,接口调一调,基本就完成了.不过中间在写后台的一些接口时,发现被自己之前写的一些方法给坑了.为什么这样说呢,因为在之前的几个 ...
- 254. Drop Eggs【LintCode java】
Description There is a building of n floors. If an egg drops from the k th floor or above, it will b ...
- 166. Nth to Last Node in List
Description Find the nth to last element of a singly linked list. The minimum number of nodes in lis ...
- 集合栈计算机 (The SetStack Computer,ACM/ICPC NWERC 2006,UVa12096
题目描述: #include<iostream> #include<string> #include<set> #include<map> #inclu ...
- django启动创建用户失败
a django应用启动 b 访问127.0.0.1:8000,报错信息如下,原因为没有这个用户需要创建下用户 c 创建用户过程中报错原因是因为添加了app需要告诉django,这个 模型发生了改变, ...
- LeetCode 98——验证二叉搜索树
1. 题目 2. 解答 2.1. 方法一 我们初始化根节点的范围为长整形数据的最小最大值 \([LONG\_MIN,LONG\_MAX]\),则其左子节点的取值范围为 \([LONG\_MIN,根节点 ...
- .Net并行编程 - Reactive Extensions(Rx)并发浅析
关于Reactive Extensions(Rx) 关于Reactive Extensions(Rx),先来看一下来自微软的官方描述: The Reactive Extensions (Rx) is ...
- 手机站测试工具(node服务器)
最近在工作中遇到手机站测试的问题,于是就写了一个node服务外加一个第三方的转二维码功能,欢迎拍砖~ 项目地址:https://github.com/finderL/webserver
- Automatic Judge
Description Welcome to HDU to take part in the second CCPC girls’ competition! A new automatic judge ...