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; }
查看全文
相关阅读:
docker镜像构建之docker commit(七)
docker常用容器命令(五)
docker常用镜像命令(四)
如何查看systemctl启动服务的日志
window server 2012 无法安装.NET framework 3.5 service pack 1
SpringBoot第六篇-SpringBoot+Mybatis+SpringSecurity+JWT整合,开发工具IDea
SpringBoot第五篇SpringSecurity 认证机制
SpringBoot第四篇常见问题
SpringBoot第三篇SpringBoo和Mybatis整合
SpringBoot第二章拦截器
原文地址:https://www.cnblogs.com/windmissing/p/2559882.html
最新文章
Android Studio使用OpenCV的配置方法
【Irrlicht鬼火引擎】掌握引擎使用流程,入门程序HelloWorld
【Irrlicht鬼火引擎】 安装配置Irrlicht鬼火引擎
【Irrlicht鬼火引擎】 认识鬼火引擎
linux实用命令(4)--文件处理
linux实用命令(3)--硬盘挂载
linux学习(2)-硬盘挂载
linux实用命令(2)-查看硬件信息
linux实用命令(1)--命令帮助
Linux学习(1)-计算机概括
热门文章
经济学
世界观
文件下载-转
mysql修改密码的4种方式
linux在线安装minio
Docker网络模式详解及容器间网络通信(十二)
docker私有镜像仓库的搭建及认证(十一)
dockerhub镜像仓库的使用(十)
docker镜像的备份恢复迁移(九)
docker镜像构建之dockfile(八)
Copyright © 2011-2022 走看看