zoukankan
html css js c++ java
HDU3350 #define is unsafe 栈的应用
//数据结构-栈的应用 #include<iostream> #include<string> #include<vector> using namespace std; struct node { int value;//值 int add;//+的次数 }; //用容器实现栈的FILO vector<node> ans;//数值栈 vector<char> sig;//符号栈 int main() { int t, i; string str; node temp, temp2; cin>>t; while(t--) { cin>>str; temp.value = 0; temp.add = 0; sig.clear(); ans.clear(); for(i = 0; i < str.length(); i++) { //逐字打扫,只有'('、'+'、 ','、')'和数字是有用的,"MAX"不用处理 //优先级:'(' > '+' > ',' > ')' switch (str[i]) { case '(': sig.push_back(str[i]); temp.value = 0; temp.add = 0; break; case '+': ans.push_back(temp); sig.push_back(str[i]); temp.value = 0; temp.add = 0; break; case ',': while(!sig.empty() && sig.back() == '+') { temp2 = ans.back(); temp.value = temp.value + temp2.value; temp.add = temp.add + 1 + temp2.add; ans.pop_back(); sig.pop_back(); } ans.push_back(temp); sig.push_back(str[i]); temp.value = 0; temp.add = 0; break; case ')': while(!sig.empty() && sig.back() == '+') { temp2 = ans.back(); temp.value = temp.value + temp2.value; temp.add = temp.add + 1 + temp2.add; ans.pop_back(); sig.pop_back(); } temp2 = ans.back(); if(temp2.value > temp.value) { temp.value = temp2.value; temp.add = temp2.add * 2 + temp.add; } else { temp.add = temp.add * 2 + temp2.add; } sig.pop_back();sig.pop_back(); ans.pop_back(); break; case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9': temp.value = temp.value * 10 + str[i] - '0'; break; } } while(!sig.empty() && sig.back() == '+') { temp2 = ans.back(); temp.value = temp.value + temp2.value; temp.add = temp.add + 1 + temp2.add; ans.pop_back(); sig.pop_back(); } cout<<temp.value<<' '<<temp.add<<endl; } return 0; }
查看全文
相关阅读:
Windows各系统关闭更新(winXP/win2003/win7/win8/win2012/win10)
SSH框架搭建与整合
Servlet转发和重定向response.sendRedirecte()区别 (转)
el 表达式用法(转)
数组和集合(collection)调用syso输出时,结果不一致问题
Java 接口和抽象类可以被new么?
Dbutils
dbutils使用---QueryRunner(query_update)、BeanListBeanHandler、MapListMapHandler、ScalarHandler
Hadoop参数:fs.defaultFS、 dfs.name.dir 、 dfs.data.dir
工厂设计模式(三种)详解
原文地址:https://www.cnblogs.com/windmissing/p/2559882.html
最新文章
WEB/APP开发基础之旅--HTML入门1
人工智能实践之旅 —— 简单说说主要内容和安排
为什么标准C++中两个直接字符串常量不能相加
判断链表是否为回文结构
Makefile 学习 1
Go语言实现随机快速排序
CentOS7开机启动图形界面的开启与关闭
Go语言实现插入排序
Html 页面组成元素
Echarts 服务器端刷新前端Echarts图表
热门文章
FineUI OnClick 传递多个参数
Echarts 双Y轴
JS switch case 多条件
C# 获取本周,上周,下周
FineUI 子页面操作父页面JS
Python 环境变量以及pip安装
给懒虫们--设置windows系统密码长期有效且关闭复杂性要求
学习使用Winserver2019的Hyper-v(安装与基本设置)
记录从Winserver2012R2升级到Winserver2019
虚拟化学习-安装使用VirtualBox,并安装一台虚拟机(win10)
Copyright © 2011-2022 走看看